在Unix终端中批量重命名文件

时间:2016-09-01 18:42:41

标签: unix terminal file-rename

我在一个文件夹中有大约80个文件,它们都遵循我需要重命名的相同命名结构。如果我能用_和?划定界限?那么它应该将文件名分解为我正在寻找的内容。下面是当前文件名和新文件名的示例。有关如何做到这一点的任何建议?我在线尝试了一些教程,但没有一个按预期工作。

当前文件名: abcd_This是我的文件名.pdf?xyz

新文件名: 这是我的文件名.pdf

1 个答案:

答案 0 :(得分:2)

尝试使用bash:

for f in *; do g="${f#*_}"; h="${g%\?*}"; echo "$f -> $g -> $h"; done

$ {var#* motif}删除var内容左侧的最小主题

$ {var%motif *}删除var内容右侧的最小主题

之前使用反斜杠?因为它是UNIX shell下的特殊字符

为了最大化主题,请使用##或%%而不是#和%。