Website-Suche

Entfernen Sie einfache Anführungszeichen aus einem Dateinamen in Bash


Ein Dateiname mit einem einfachen Anführungszeichen im Namen kann viele Probleme verursachen, wenn er mit einem Bash-Skript oder auf der Befehlszeile verwendet wird. Einfache Anführungszeichen sind Sonderzeichen und weisen die Bash-Shell an, den Text zwischen ihnen wörtlich zu interpretieren. Die meisten Benutzer würden es im Idealfall vorziehen, mit Dateien zu arbeiten, die keine Anführungszeichen im Dateinamen haben.

Das Bearbeiten von Dateien ohne Anführungszeichen ist viel einfacher, da Sie sich keine Sorgen machen müssen, dass der Dateiname jedes Mal maskiert wird. In diesem Tutorial erfahren Sie, wie Sie einfache Anführungszeichen aus Dateinamen mit verschiedenen Methoden unter Linux entfernen.

In diesem Tutorial lernen Sie:

  • Verschiedene Befehle, die zum Entfernen oder Ersetzen einfacher Anführungszeichen in Dateinamen verwendet werden

Entfernen Sie einfache Anführungszeichen aus einem Dateinamen in Bash

Alle folgenden Beispiele finden in der Linux-Befehlszeile statt. Öffnen Sie ein Terminal und navigieren Sie zu dem Verzeichnis, das die Dateien enthält, die Sie umbenennen möchten, und probieren Sie dann einige der folgenden Befehle aus, um loszulegen.

  1. Um die einfachen Anführungszeichen in einer einzelnen Datei zu entfernen und durch Unterstriche zu ersetzen, können Sie den folgenden Befehl verwenden:

    myfile="some'file.txt" ; mv "$myfile" $(echo $myfile | tr "'" '_')
    
  2. Um die einfachen Anführungszeichen vollständig zu entfernen, können wir den gleichen Befehl wie oben verwenden, aber verwenden Sie tr und die Option -d für die Anführungszeichen:

    myfile="some'file.txt" ; mv "$myfile" $(echo $myfile | tr -d "'")
    
  3. Hier ist ein weiterer Befehl, mit dem die einfachen Anführungszeichen aus allen Dateien innerhalb eines Verzeichnisses entfernt werden können:

    ls | grep "'" | while read -r f; do mv -i "$f" `echo $f | tr -d "'"`; done
    
  4. Der gleiche Befehl wie oben, aber diesmal werden die einfachen Anführungszeichen durch Unterstriche ersetzt:

    ls | grep "'" | while read -r f; do mv "$f" `echo $f | tr "'" '_'`; done
    
  5. Der detox-Befehl bereinigt alle Arten von seltsamen Zeichen in Dateinamen. Eine der Standardfunktionen besteht darin, einfache Anführungszeichen durch Unterstriche zu ersetzen.

    detox some\'file.txt
    OR
    detox *
    

    Um die Installation von detox und weitere Anweisungen zur Verwendung zu sehen, lesen Sie unser Tutorial zum Bereinigen von Dateinamen mit dem Befehlszeilenprogramm detox.

  6. Wenn Sie das Umbenennungsprogramm auf Ihrem Linux-System installiert haben, gibt es eine sehr einfache Syntax, um die einfachen Anführungszeichen aus allen Dateien zu entfernen:

    rename "s/\'//g" *
    
  7. Das Anoter-Dienstprogramm, das normalerweise nicht standardmäßig unter Linux installiert wird, aber die Aufgabe sehr gut erledigen kann, ist mmv. Der folgende Befehl entfernt alle einfachen Anführungszeichen und ersetzt sie durch Unterstriche:

    mmv "*'*" '#1_#2'
    

NOTE
Sie könnten auch an unserem Tutorial zum Umbenennen mehrerer Dateien unter Linux interessiert sein, in dem wir weitere Beispiele für das Umbenennen von Batch-Dateien sowie die Installation der Befehle rename und mmv zeigen.

Abschließende Gedanken

In diesem Tutorial haben wir gesehen, wie man die einfachen Anführungszeichen aus Dateien auf einem Linux-System entfernt. Dateien ohne einfache Anführungszeichen sind einfacher zu handhaben, da sie mit mehr Tools unter Linux kompatibel sind, und wir müssen nicht daran denken, die Dateinamen zu maskieren, wenn wir mit den Dateien arbeiten. Unabhängig davon, ob Sie eine Handvoll oder einige tausend Dateien umbenennen müssen, wird die Umbenennungsaufgabe mit den Befehlen in diesem Tutorial im Handumdrehen erledigt.

Verwandte Artikel: