我有很多这样的文件:
tf_CVBV6Z_CVSA1Z_pws2_pcc1.sac
tf_CVBV5Z_CVSA2Z_pws2_pcc1.sac
tf_CVBV4Z_CVSA3Z_pws2_pcc1.sac
tf_CVBV3Z_CVSA4Z_pws2_pcc1.sac
tf_CVBV2Z_CVSA5Z_pws2_pcc1.sac
tf_CVBV1Z_CVSA6Z_pws2_pcc1.sac
我想更改顺序以这样结束:
tf_CVSA1Z_CVBV6Z_pws2_pcc1.sac
tf_CVSA2Z_CVBV5Z_pws2_pcc1.sac
tf_CVSA3Z_CVBV4Z_pws2_pcc1.sac
tf_CVSA4Z_CVBV3Z_pws2_pcc1.sac
tf_CVSA5Z_CVBV2Z_pws2_pcc1.sac
tf_CVSA6Z_CVBV1Z_pws2_pcc1.sac
我尝试了重命名选项,但是它不起作用。
有什么想法吗?
谢谢
答案 0 :(得分:3)
使用perl的重命名:
$ rename -n 's/(CV[^_]+)_(CV[^_]+)/$2_$1/' tf_CVSA1Z_CVBV6Z_pws2_pcc1.sac
tf_CVSA1Z_CVBV6Z_pws2_pcc1.sac -> tf_CVBV6Z_CVSA1Z_pws2_pcc1.sac
当输出看起来不错时,请移除-n
开关。
有些其他具有相同名称的工具可能无法执行此操作,因此请小心。
如果运行以下命令(GNU
)
$ file "$(readlink -f "$(type -p rename)")"
并且您得到的结果包含Perl script, ASCII text executable
而不包含ELF
,那么这似乎是正确的工具=)
如果没有,则将其设置为Debian
和Ubuntu
之类的派生类的默认设置(通常已经是这样):
$ sudo update-alternatives --set rename /path/to/rename
将/path/to/rename
替换为perl rename
可执行文件的路径。
如果您没有此命令,请搜索软件包管理器以安装它,或者do it manually(无部门...)
此工具最初由Perl的父亲Larry Wall编写。