使用重命名来更改复杂文件名中的一个数字

时间:2015-12-01 20:33:09

标签: linux perl 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

1 个答案:

答案 0 :(得分:1)

您可以使用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
相关问题