![So benennen Sie Dateien um und löschen dabei das Zeichen " mithilfe der Linux-Shell](https://rvso.com/image/1421903/So%20benennen%20Sie%20Dateien%20um%20und%20l%C3%B6schen%20dabei%20das%20Zeichen%20%22%20mithilfe%20der%20Linux-Shell.png)
Ich habe mehrere Dateien mit Anführungszeichen im Dateinamen, wie diese:
"Dies_ist_ein_langer_Dateiname_mit_Anführungszeichen".mp3
Ich versuche, den Linux-Befehl rename zu verwenden. Ich kann den Unterstrich einfach löschen mit
rename 's/_//g' *
aber wenn ich es mit \" versuche, passiert nichts (ich verwende -n, um die Änderungen anzuzeigen):
rename -n 's/\"//g' *
nichts wird umbenannt
Danke!
Antwort1
Ihre Dateinamen enthalten „intelligente Anführungszeichen“:
“Tokyo_String_Quartet-Beethoven_-Late_String_Quartets-CD1-11-Quartet”.mp3
Versuchen Sie den rename
Befehl mit diesen anstelle von"
Oder ohne Verwendung rename
können Sie die folgende Option verwenden sed
:
for f in *.mp3
do
new=$(echo $f | sed -E 's/[“”]//g')
mv $f $new
done
Wie bei allen Batch-Shell-Operationen mv
ist es am sichersten, sie auf einer Sicherungskopie des Originalordners zu testen/auszuführen. Sie können sie testen, indem Sie sie beim ersten Versuch echo
anstelle von eingeben.mv
Antwort2
Es besteht keine Notwendigkeit, doppelte Anführungszeichen innerhalb einzelner Anführungszeichen zu maskieren.
rename -n 's/"//g' *
Antwort3
Ich konnte es in Bash folgendermaßen tun:
file=$(ls | grep \")
newName=$(echo $file | sed 's/\"//g')
mv $file $newName