如何从文件名中删除单引号

And*_*ndy 7 linux bash

进来的文件有空格、单引号、方括号、方括号等。

我删除空格并使用以下命令替换为点

for file in *.mp4; do mv "$file" `echo $file | tr ' ' '.'` ; done
Run Code Online (Sandbox Code Playgroud)

然后我使用以下命令删除特殊字符

rename -n 's/[^a-zA-Z0-9_-]//g' "$file"
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,单引号(')仍然存在于文件名中。有没有办法在一个命令中拥有干净的文件名?

nab*_*nfo 7

在 bash 中:

for file in *.mp4; do dest="${file//[[:space:]]/.}" && mv -i "$file" "${dest//[^[:alnum:]._-]/}"; done
Run Code Online (Sandbox Code Playgroud)