更改文件名称
我想了解如何使用终端和Mac更改文件名。 我一直在寻找,我找到了很多解决方案。例如这里: Using sed to mass rename files
这会将文件从F00001-070
更改为F000-070
。
for file in *.txt; do echo mv -v "$file" "${file/#F0000/F000}"; done
我已经过测试,效果很好。但现在我试着改变它
来自old-file.txt
到new-file.txt
for file in *.txt; do echo mv -v "$file" "${file/#old/new}”; done
最后一个不起作用。
我认为file/#F0000/F000
意味着从F0000到F000的更改文件。我一定是错的?
有人可以解释代码并应用于如何在开头,结尾或中间更改文件名称的一部分
答案 0 :(得分:1)
你的结束语是错误的,Unicode右引用而不是ASCII直引号:
# bad
for file in *.txt; do echo mv -v "$file" "${file/#old/new}”; done
^
# good
for file in *.txt; do echo mv -v "$file" "${file/#old/new}"; done
^
答案 1 :(得分:0)
for file in *.txt; do echo mv -v "$file" "${file/old/new}”; done
#mean 直到,其中一个%表示之后在正则表达式中的行为,所以删除你的#
# var=old-file.txt;echo ${var/%file*/new}
old-new
# var=old-file.txt;echo ${var/#*file/new}
new.txt
%%和##表示最长的表达式,其中#和%表示第一次出现