2016-09-01 29 views
-1

我在一个文件夹中有大约80个文件,它们都遵循相同的命名结构,我需要重命名。如果我可以用_和?划界那么它应该将文件名分解成我正在查找的内容。以下是当前文件名和新文件名的示例。有关如何做到这一点的任何建议?我在网上尝试了几个教程,但没有一个按预期工作。在UNIX终端中批量重命名文件

当前文件名: abcd_This是我的文件name.pdf XYZ

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

回答

2

使用bash试试这个:

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

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

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

之前使用反斜杠吗?因为它是UNIX shell中的一个特殊字符

为了最大化motif,请使用##或%%代替#和%。

+0

谢谢!这得到了解析为我工作,然后我能够把它放到我的代码的其余部分实际上做文件移动和重命名。再次感谢! – user2788371