我正在使用此命令来查找和重命名目录中具有非大写文件名的文件(为了安全起见,我离开了-n
标志,以防万一有人从此处复制和粘贴):
rename -n 's/(?<![.'\''])\b\w*/\u$&/g' *
问题是它会找到具有非标准ASCII字符(例如Noël
)的文件,并将其视为需要修复的问题。
有什么办法可以避免这种情况发生?
编辑(20180701-1635):
我刚刚意识到,如果文件名也包含破折号或撇号(该命令将字符更改为大写),该命令也会“失败”(尝试重命名)。当前错误重命名的示例:
Alan的Filename.txt> Alan的Filename.txt
File-name.txt> File-Name.txt
答案 0 :(得分:0)
您的问题有点分散,但我认为您的意思是:
for i in $(echo * | sed 's, YOUR_REG_EGP ,,g'); do
# your rename commmands on $i
done