如何重命名目录中的所有文件,在“.txt”之前添加“_1”
apac_02_aug_2017_file.txt
emea_02_May_2017_file.txt
ger__02_Jun_2017_file.txt
到
apac_02_aug_2017_file_1.txt
emea_02_May_2017_file_1.txt
ger__02_Jun_2017_file_1.txt
答案1
带重命名
rename .txt _1.txt *
应该做你正在寻找的事情。
去引用man rename
:
重命名[选项]表达式替换文件...
重命名将通过替换替换名称中第一次出现的表达式来重命名指定的文件。
使用常见的 bash 命令
既然你说rename
你的系统上没有安装它,那么这里有一个使用更标准 Bash 的解决方案:
for file in *.txt; do
mv "$file" "${file%.txt}_1.txt"
done
说明:我们循环遍历所有文件。对于每个文件,我们通过使用所谓的“参数扩展”(这就是部分${}
)将其移动到正确的位置。可以在参数扩展中使用特殊字符%
来匹配字符串末尾的模式并将其删除。
欲了解更多信息,请参阅:http://wiki.bash-hackers.org/syntax/pe#from_the_end
答案2
通过mmv
它非常简单:
mmv '*.*' '#1_1.#2' *.txt