替换/替换字符以在Bash中重命名文件

时间:2019-01-02 09:36:24

标签: bash rename

我在目录中具有以下文件名:

file_foo_01_2010.nc
file_foo_02_2010.nc
...
file_foo_12_2018.nc

,我想一次将它们全部重命名为:

file_foo_2010_01.nc
file_foo_2010_02.nc
...
file_foo_2018_12.nc

我知道我可以遍历bash脚本中的每个文件,并以此方式进行操作,但是我想知道是否还有更简洁的方法?像这样:

mv file_foo_12_201?.nc file_foo_201?_12.nc

重命名每个12月的文件等

我本质上想将9-10字符转换为12-15,并且不确定如何使用bash进行转换。我知道rename,但不确定可以用于我的用例。

1 个答案:

答案 0 :(得分:1)

使用Perl的mymodule.__version__

rename

如果对结果满意,请删除$ rename -n 's/(_[^_]+)(_[^_]+).nc$/$2$1.nc/' *.nc rename(file_foo_01_2010.nc, file_foo_2010_01.nc) rename(file_foo_12_2018.nc, file_foo_2018_12.nc)