我有许多文件名中带有双引号的文件,如下所示:
“这是一个带有引号的长文件名”.mp3
我尝试使用 Linux 命令重命名,我可以使用以下命令轻松删除下划线
rename 's/_//g' *
但是当我尝试使用 \" 时什么也没有发生(我使用 -n 来查看变化):
rename -n 's/\"//g' *
什么都没有重命名
谢谢!
答案1
您的文件名中有“智能引号”:
“Tokyo_String_Quartet-Beethoven_-Late_String_Quartets-CD1-11-Quartet”.mp3
尝试rename
使用插入的命令代替"
或者不使用,rename
你可以选择sed
:
for f in *.mp3
do
new=$(echo $f | sed -E 's/[“”]//g')
mv $f $new
done
与所有批处理 shell 操作一样,mv
最安全的方法是在原始文件夹的备份上进行测试/运行...您可以在第一次尝试时通过echo
替换来进行测试。mv
答案2
在单引号内无需转义双引号。
rename -n 's/"//g' *
答案3
我能够用 Bash 这样做:
file=$(ls | grep \")
newName=$(echo $file | sed 's/\"//g')
mv $file $newName