用于调整文件名的Shell脚本(从最后开始)

时间:2013-07-02 06:28:15

标签: shell filenames

我遇到了如何对更改文件名进行BATCH调整的问题。

我的所有文件都是这样的:

1602017EN.MPG 1802312EN.MPG 等

我需要为所有文件名更改2件事。

我需要将文件扩展名调整为小写,因此它会读取.mpg而不是.MPG。 对于这部分,我正在使用苹果自动贩卖机服务。这非常有效。

其次,我需要删除最后两个字符,即字母。

所以第一项会读1602017.mpg等等。

如果可以使用我可以添加到我的automator服务的shell脚本来完成它,那将是完美的,因此它会相互改变no1和no2。

非常感谢你!

1 个答案:

答案 0 :(得分:1)

假设您使用bash进行shell脚本编写,可以使用sed轻松完成:

for file in "$@"
do
    name=$(echo "$file" | sed 's/[A-Z][A-Z].MPG$/.mpg/')
    mv "$file" "$name"
done

(根据合理的假设,文件名中没有换行符。)

但是,您也可以直接在bash中执行此操作,而无需调用外部程序:

$ for file in 1602017EN.MPG 1802312EN.MPG; do echo ${file/[A-Z][A-Z].MPG/.mpg}; done
1602017.mpg
1802312.mpg
$