从多个文件名中删除撇号

从多个文件名中删除撇号

我是 Linux 新手,遇到了以下问题。我有几个不同的文件名,例如:

'Name1.mp4'
'Name2.mp4'
...

我想'从文件名中删除撇号。这意味着,我希望得到以下结果:

Name1.mp4
Name2.mp4
...

mv有人能告诉我怎么做吗?或者给我一个使用或命令来执行此操作的解释rename

谢谢您的帮助。

答案1

这会将'以 结尾的文件全部替换为无.mp4'

rename "s/'//g if -f" *.mp4\'

rename可能尚未安装,因此运行sudo apt install rename 进行安装。

例子:

$ touch "'1222.mp4'"
$ rename -n "s/'//g if -f" *.mp4\'
rename('1222.mp4', 1222.mp4)

-n不更改文件,仅显示结果。删除-n以执行命令。

答案2

另一个不错的选择是使用mmv(使用 安装sudo apt install mmv)。如果您的文件名确实是以下格式,'Name1.mp4'您可以运行:

mmv -n "'*.mp4'" "#1.mp4"

如果您对输出满意,请删除-n以应用重命名。

答案3

在 Bash 循环中mv,因此无需安装...

首先使用以下命令进行试运行:

for f in *\'*; do [ -f "$f" ] && ! [ -d "${f//\'/}" ] && echo mv -nv -- "$f" "${f//\'/}"; done

...如果这就是您想要的,则重命名为:

for f in *\'*; do [ -f "$f" ] && ! [ -d "${f//\'/}" ] && mv -nv -- "$f" "${f//\'/}"; done

相关内容