带重命名

带重命名

如何重命名目录中的所有文件,在“.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

相关内容