webentwicklung-frage-antwort-db.com.de

Entfernen Sie Leerzeichen aus Dateinamen in Linux

Ich habe Hunderte von JPG-Dateien in verschiedenen Ordnern wie folgt:

  • 304775 105_01.jpg
  • 304775 105_03.jpg
  • 304775 105_05.jpg
  • 304775 105_07.jpg
  • 304775 105_02.jpg
  • 304775 105_04.jpg
  • 304775 105_06.jpg

Grundsätzlich muss ich die SPACES entfernen. Ich kenne bereits den Befehl, die Leerzeichen in Unterstriche zu ändern:

$ rename "s/ /_/g" *

Die Unterstriche brauche ich in diesem Fall aber nicht. Ich muss nur den Raum entfernen. Ich habe Folgendes versucht, aber es hat nicht funktioniert:

$ rename "s/ //g" *

Jede Hilfe wäre dankbar.

26
Sam Timalsina

Sie könnten so etwas tun:

IFS="\n"
for file in *.jpg;
do
    mv "$file" "${file//[[:space:]]}"
done
23
Blake

Das Folgende würde funktionieren, falls es wirklich ein Leerzeichen wäre.

$ rename "s/ //g" *

Versuchen

$ rename "s/\s+//g" *

\s Ist ein Leerzeichen, das zur Menge von [ \t\r\n] Gehört.

37