使用rename可以更改复杂文件名中的一个数字



使用Linux命令行工具,我们希望更改以下格式的文件名:

SC1177.2.0002.2015.09.16.18.05.05.900577.177003720.IMA

除了在第二个数字上加100之外,我们想保持一切不变。因此文件名将变为:

SC1177.102.0002.2015.09.16.18.05.05.900577.177003720.IMA

注意,我们不能只加前缀"10",因为另一个文件名是:

SC1177.10.0032.2015.09.16.18.05.05.900577.177107276.IMA

然后应该变成:

SC1177.110.0032.2015.09.16.18.05.05.900577.177107276.IMA

您可以使用awk帮助进行重命名。例如,如果文件名在变量name中,则可以使用更改名称

newname=`awk -F. -v OFS=. '{$2+=100};1' <<<$name`

如果你想进一步重命名特定目录中以SC开头的所有文件,你可以这样做:

for name in SC*; do
    newname=`awk -F. -v OFS=. '{$2+=100};1' <<<$name`
    mv "$name" "$newname"
done

最新更新