【发布时间】:2019-10-13 23:07:42
【问题描述】:
我在一个文件夹中有几个.txt 文件,它们的名称如下:
file1.txt
file2.txt
file2.txt_newfile.txt
file3.txt
file4.txt
file4.txt_newfile.txt
file5.txt_newfile.txt
...
我正在尝试从文件名中删除 _newfile.txt。如果文件存在,它应该被新文件覆盖(例如,file2.txt 将被替换,但 file5.txt 将被重命名)。
预期输出:
file1.txt
file2.txt # this was file2.txt_newfile.txt
file3.txt
file4.txt # file4.txt_newfile.txt
file5.txt #file5.txt_newfile.txt
...
我尝试了以下代码:
for i in $(find . -name "*_newfile.txt" -print); do
mv -f "$file" "${file%????????????}"
done
但是,我收到以下错误:
mv: rename to : No such file or directory
我做错了什么,如何重命名这些文件?
【问题讨论】:
-
我会使用
rename -n -f -s _newfile '' *newfile.txt
标签: bash rename file-rename