ych*_*che 1 filenames rename mmv
所以我的文件名如下所示:
Building+a+Container+for+Robust+Conversations.pdf
我想使用 mmv 来重命名它,如下所示:
Building_a_Container_for_Robust_Conversations.pdf
或者像这样:
BuildingaContainerforRobustConversations.pdf
(假设你想对当前目录下的所有文件执行相同的操作...)
要将 + 替换为 _ :
mmv '*+*' '#1_#2'
Run Code Online (Sandbox Code Playgroud)
剥离 + :
mmv '*+*' '#1#2'
Run Code Online (Sandbox Code Playgroud)
现在,mmv
仅替换每个文件的第一个匹配的+。如果您从 shell 手动执行此操作,并且只想/需要执行一次此重命名过程,那么您可以根据需要多次重复该命令。(按向上/向下箭头键是滚动命令历史记录的最简单方法。)如果您打算这样做,那么建议添加 -v(详细)标志,因为它会让您知道 mmv 命令是什么做了,并且没有更多的工作要做。例如:
$ mmv -v '*+*' '#1#2'
a+b+c.jpg -> ab+c.jpg : done
d+e+f.jpg -> de+f.jpg : done
g+h+i.jpg -> gh+i.jpg : done
$ mmv -v '*+*' '#1#2'
ab+c.jpg -> abc.jpg : done
de+f.jpg -> def.jpg : done
gh+i.jpg -> ghi.jpg : done
$ mmv -v '*+*' '#1#2'
*+* -> #1#2 : no match.
Nothing done.
Run Code Online (Sandbox Code Playgroud)
如果您希望一次性替换所有文件中的所有匹配项,或者希望将此命令嵌入到某种脚本中,则需要更精细的解决方案或不同的命令。也许考虑一下?rename
rename 's/\+/_/g' *
or
rename 's/\+//g' *
Run Code Online (Sandbox Code Playgroud)