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

So ersetzen Sie alle Vorkommen eines Wortes in allen Dateien in der Linux-Befehlszeile

Frage :Wie ersetze ich alle Vorkommen eines Wortes in allen Dateien im angegebenen Ordner?

Stellen Sie sich ein Problemszenario vor, in dem Sie eine Website haben, auf der Sie häufig auf das aktuelle Jahr verweisen. Jedes Jahr müssen Sie das Jahr aktualisieren. Sie können leicht alle Vorkommen in allen Dateien finden, aber es sollte vermieden werden, das Jahr einzeln in jeder Datei manuell zu ändern.

Lösung

Also, was machst du? Eine der verschiedenen Möglichkeiten, alle Vorkommen zu finden und dann den gesuchten Begriff zu ersetzen, ist die Verwendung einer Kombination aus find- und sed-Befehlen.

Sie können dies ganz einfach mit einem einzigen Befehl tun:In diesem Beispiel haben Sie 50 Webseiten im Seitenordner. Dieser Befehl ändert sofort alle Vorkommen von „2017“ in „2018“:

find ~/public_html/my_website/pages -type f -exec sed -i 's/2017/2018/g' {} \;

Um das obige Beispiel etwas allgemeiner zu gestalten, müssen Sie Folgendes tun:

find <path_to_directory> -type f -exec sed -i 's/<search_text>/<replace_text>/g' {} \;

Ersetzen Sie im obigen Befehl , und durch die tatsächlichen Daten.

Erklärung

Was Sie hier tun, ist, dass Sie den Befehl find verwenden, um alle Dateien in den aktuellen Verzeichnissen und ihren Unterverzeichnissen abzurufen. Die Option -type f stellt sicher, dass Sie nur Dateien erhalten, keine Verzeichnisse.

Und dann übergeben Sie das Ergebnis mit dem exec-Befehl an den sed-Befehl. Der Befehl sed sucht nach dem Text und ersetzt ihn.

Das {} \; ist Teil des exec-Befehls. Das Leerzeichen zwischen } und \ ist obligatorisch.

Dieser schnelle Linux-Tipp wurde von vorgeschlagen Leserin des Linux-Handbuchs, Jane Hadley. Haben Sie eine bessere Lösung für dieses Problem? Teilen Sie es in den Kommentaren.


Linux
  1. Suchen von Dateien in der Befehlszeile (How To)

  2. 5 Befehlszeilen-Tools zum schnellen Auffinden von Dateien unter Linux

  3. So benennen Sie Dateien unter Linux um

  4. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

  5. So finden Sie alle Sparse-Dateien in Linux

So finden Sie Dateien unter Linux

So finden Sie Dateien in Linux mit dem Find-Befehl

So suchen Sie nach Dateien über die Linux-Befehlszeile

So finden Sie Dateien mit dem fd-Befehl in Linux

So finden Sie die IP-Adresse in der Linux-Befehlszeile

So finden Sie Ordner in Linux