我在目录中具有以下文件名:
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
,但不确定可以用于我的用例。
答案 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)
。