我在一个文件夹中有大约80个文件,它们都遵循我需要重命名的相同命名结构。如果我能用_和?划定界限?那么它应该将文件名分解为我正在寻找的内容。下面是当前文件名和新文件名的示例。有关如何做到这一点的任何建议?我在线尝试了一些教程,但没有一个按预期工作。
当前文件名: abcd_This是我的文件名.pdf?xyz
新文件名: 这是我的文件名.pdf
答案 0 :(得分:2)
尝试使用bash:
for f in *; do g="${f#*_}"; h="${g%\?*}"; echo "$f -> $g -> $h"; done
$ {var#* motif}删除var内容左侧的最小主题
$ {var%motif *}删除var内容右侧的最小主题
之前使用反斜杠?因为它是UNIX shell下的特殊字符
为了最大化主题,请使用##或%%而不是#和%。