linux下shell删除/替换文件名空格、特殊符号脚本

老牛  2015-08-18 01:47  阅读 553 views 次 评论 0 条

对于本层目录中的文件名、目录名中:
将空格替换为".",
将半角圆括号、半角方括号、半角逗号替换为"_",
最后将重复多次的"."或"_"替换为单个的。

#/bin/sh
find . -maxdepth 1 -name "*" -print |
while read name; do
newname=$(echo $name | sed 's/\s\+/./g' | sed 's/\.\{2,\}/\./g' | sed 's/[(,)]\+/_/g' | sed 's/\]\+/_/g' | sed 's/\[\+/_/g' | sed 's/_\+/_/g' | sed "s/'\+/\-/g")
if [[ $name != $na ]]; then
echo "mv $name $newname"
mv "$name" $newname
echo
echo
fi
done

历史上的今天:

本文地址:http://xiaohost.com/1313.html
版权声明:本文为原创文章,版权归 老牛 所有,欢迎分享本文,转载请保留出处!

发表评论


表情