重命名文件名中的多个值

时间:2015-10-16 14:29:48

标签: bash awk sed rename

我有很多这样的文件:

nsh_nyi.mp4
ott_pit.mp4
chi_wsh.mp4
nyr_mtl.mp4
dal_tbl.mp4
stl_edm.mp4
min_ari.mp4

我想用onliner重命名所有这些文件:

nsh_nyi.mp4 becomes nashville predators - new york islanders.mp4
ott_pit.mp4 becomes ottawa senators - pittsburgh penguins.mp4

是否可以在linux中使用一个命令,使用awk,rename,sed等? 我试图像这样批量重命名这些文件:

rename s/nsh/nashville\  predators/g

它将替换文件的一部分,但不会替换第二部分:nyi

当然,我将所有俱乐部名称都放在一个档案中。 结果是:

nsh_nyi.mp4
Can't rename nsh_nyi.mp4 nsh_New-york-islanders.mp4: No such file or directory
ott_pit.mp4
Can't rename ott_pit.mp4 ott_Pittsburgh-penguins.mp4: No such file or directory

1 个答案:

答案 0 :(得分:0)

您可以通过将它们全部用分号分隔来替换多个模式,如下所示。

rename 's/nsh/nashville\  predators/g;s/ott/ottawa\ senators/g'

Reference