GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So ersetzen Sie Leerzeichen in Dateinamen durch Unterstriche in der Linux-Shell

Bei der Arbeit mit Linux stoßen Sie möglicherweise auf einige Dienstprogramme und Apps, die nur mit Dateinamen funktionieren, die keine Leerzeichen enthalten. Wir speichern Dateien nicht immer in diesem Format ohne Leerzeichen und müssen möglicherweise nach einer Problemumgehung suchen, die Leerzeichen in Dateinamen durch Unterstriche „_“ ersetzt. Auf diese Weise enthalten Ihre Dateinamen keine Leerzeichen und Sie können problemlos in allen Anwendungen damit arbeiten.

In diesem Artikel erklären wir Ihnen zwei Möglichkeiten, wie Sie alle Leerzeichen in Dateinamen ganz einfach über die Befehlszeile in Unterstriche umwandeln können.

Wir haben die in diesem Artikel erwähnten Befehle und Verfahren auf einem Ubuntu 18.04 LTS-System ausgeführt.

Mein Downloads-Ordner, den ich als Beispiel für diesen Artikel verwenden werde, enthält Leerzeichen in allen Dateinamen.

$ ls Downloads

Ich werde diesen Ordner verwenden, um zu erklären, wie ich die Dateinamen in ein neues Format umwandle.

Methode 1:Durch einen einzigen mv-Befehl

Bei dieser Methode verwenden wir den Ubuntu mv-Befehl in einer for-Schleife, um alle Dateien/Ordner in einem bestimmten Verzeichnis umzubenennen, sodass alle Leerzeichen in ihren Namen durch Unterstriche ersetzt werden.

Öffnen Sie Ihre Ubuntu-Befehlszeile, das Terminal, entweder über die Application Launcher-Suche oder die Tastenkombination Strg+Alt+T.

Hier ist die Syntax des Befehls, den Sie verwenden werden:

$ for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done

Ich habe denselben Befehl ausgeführt, um Leerzeichen in meinem Downloads-Ordner durch Unterstriche zu ersetzen:

Als ich den Inhalt des Verzeichnisses noch einmal aufgelistet habe, können Sie sehen, dass alle Dateinamen jetzt Unterstriche anstelle von Leerzeichen enthalten.

Methode 2:Verwenden eines Skripts zum Umbenennen von Dateien

Bei dieser Methode verwenden wir ein Bash-Skript, das den Befehl mv verwendet, um Datei- und Ordnernamen so umzubenennen, dass alle Leerzeichen durch Unterstriche ersetzt werden.

Öffnen Sie die Terminal-Anwendung und wechseln Sie wie folgt zum bin-Ordner:

$ cd ~bin

Öffnen Sie jetzt eine neue Skriptdatei in einem Ihrer bevorzugten Texteditoren. Wir werden den Nano-Editor verwenden, um eine leere Skriptdatei mit dem Namen replace_spaces.sh

zu öffnen
$ sudo nano replace_spaces.sh

Fügen Sie in dieser leeren Datei das folgende Skript hinzu:

#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo not renaming \""$f"\" because \""$new"\" already exists
    else
      echo moving "$f" to "$new"
    mv "$f" "$new"
  fi
fi
done

Tipp: Anstatt das gesamte Skript in Ihre Bash-Datei einzugeben, können Sie es von hier aus kopieren und im Terminal einfügen, indem Sie Strg+Umschalt+V verwenden oder die Option Einfügen aus dem Rechtsklickmenü verwenden.

So sieht Ihre Datei aus:

Beenden Sie nun die Datei über die Tastenkombination Strg+X und speichern Sie die Datei auf der Seite „Save Modified Buffer?“. Eingabeaufforderung, indem Sie Y eingeben und dann die Eingabetaste drücken.

Um diese Datei zu einem ausführbaren Skript zu machen, führen Sie den folgenden Befehl in Ihrem Terminal aus:

$ sudo chmod +x replace_spaces.sh

Jetzt können Sie das Skript in jedem Ihrer Ordner verwenden.

Wenn ich das Skript in meinem Beispiel-Download-Ordner ausführe, sehe ich alle Leerzeichen in meinen Dateinamen wie folgt in Unterstriche umgewandelt:

Dies waren also die beiden Möglichkeiten, wie Sie die Dateien umbenennen können, sodass alle Leerzeichen in ihren Namen in Unterstriche umgewandelt werden. Jetzt erkennt jede Anwendung, die Sie verwenden, Dateinamen, die Leerzeichen enthalten.


Ubuntu
  1. Linux-Grundlagen:So laden Sie Dateien auf der Shell mit Wget herunter

  2. So verwalten Sie Linux-Dienste mit dem Befehl systemctl

  3. So ändern Sie die Standard-Shell in Linux

  4. Wie schreibe ich eine Datei mit C in Linux?

  5. Wie benenne ich Dateien mit Leerzeichen mit der Linux-Shell um?

So führen Sie Shell-Skript als Systemd-Dienst in Linux aus

So lesen Sie eine Datei mit Leerzeichen in Linux

So ändern Sie die Standardbenutzer-Shell im Linux-Betriebssystem

So zeigen Sie Daten mit dem Tail-Befehl in Linux an

So gehen Sie Dateinamen mit Leerzeichen in Linux an

Sichern Sie Linux mit der Sudoers-Datei