Wenn Sie einen tieferen Einblick in das Ökosystem der Linux-Betriebssystemumgebung erhalten, werden Sie feststellen, dass die integrierten Befehle ausreichen, um die meisten unserer Computerprobleme zu lösen.
Ein solches Problem ist die Notwendigkeit, Text, Wort oder Zeichenfolge in einer Datei zu finden und zu ersetzen, insbesondere wenn Sie sich in einer Serverumgebung befinden. Eine Lösung für dieses Problem ermöglicht es Ihnen, lästige Probleme wie das Aktualisieren der „/etc/apt/sources.list“ zu behandeln ”-Datei nach einem erfolgreichen Linux-System-Upgrade.
Erstellen der Testtextdatei unter Linux
Erstellen Sie eine Textdatei mit einem Namen wie „test.txt“. “ und füllen Sie es mit Text, Wörtern oder Zeichenketten. Lassen Sie diese Datei im selben Pfad wie Ihre Terminalinstanz liegen.
$ nano test.txt OR $ vi test.txt

Wir werden den cat-Befehl verwenden, um die Änderungen an unserer erstellten Testdatei flexibel zu notieren.
$ cat test.txt

Verwenden von Sed zum Suchen und Ersetzen von Text, Wörtern oder Zeichenfolgen in einer Datei
Die Stärke dieses Stream-Editors liegt in seiner Leichtigkeit bei der Durchführung grundlegender Transformationen von Eingabeströmen. Der Befehl sed bietet einen schnellen, einfachen und zeitlosen Ansatz zum Suchen und Ersetzen von gezieltem Text, Wörtern oder Zeichenkettenmustern in einer Datei.
Erstes Vorkommen von Text, Wort oder Zeichenfolge in Datei suchen und ersetzen
Aus unserer erstellten Testdatei aktualisieren wir alle Instanzen des Wortes „LinuxShellTips “ mit der Alternative „diese Seite “. Die Syntax des sed-Befehls Wir werden diese einfache Aufgabe wie folgt ausführen:
$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/' [TARGETED_FILE]
Mit Bezug auf den obigen sed-Befehl Verwendung und Syntax können wir die „LinuxShellTips unserer Testdatei ersetzen “ mit „diese Website ” Begriff wie folgt:
$ sed -i 's/LinuxShellTips/this site/' test.txt
Wir können jetzt den cat-Befehl verwenden um eine Vorschau der oben vorgeschlagenen Änderungen an unserer Testdatei anzuzeigen, um festzustellen, ob wesentliche Änderungen vorgenommen wurden.
$ cat test.txt

Wie Sie sehen können, sind die ersten beiden Vorkommen des Wortes „LinuxShellTips “ wurden durch den Ausdruck „diese Website“ ersetzt “.
Alle Vorkommen von Text, Wort oder Zeichenfolge in Datei suchen und ersetzen
Obwohl der obige Befehl alle gezielten Wortmuster in unserer Testdatei ersetzt hat, ist seine Verwendung in den meisten Fällen selektiv. Der Befehl funktioniert am besten für kleine Dateien, da in großen Dateien nur die ersten paar Vorkommen eines gezielten Wortmusters von seinem „Suchen und Ersetzen“ profitieren könnten ’ Fähigkeiten.
Um alle Vorkommen eines Wortmusters in einer bearbeitbaren Datei zu finden und zu ersetzen, sollten Sie sich an den folgenden sed-Befehl halten Syntax.
$ sed -i 's/[THE_OLD_TERM]/[THE_NEW_TERM]/g' [TARGETED_FILE]
Wie Sie bemerkt haben, das 'g'
in der obigen Befehlssyntax zum Suchen und Ersetzen fungiert als globale Variable, sodass alle globalen Vorkommen eines Begriffs in einer Zieldatei berücksichtigt werden.
$ sed -i 's/this site/LinuxShellTips/g' test.txt

Der obige Befehl findet alle globalen Vorkommen des Begriffs „diese Website “ und ersetzt ihn durch den Begriff „LinuxShellTips “.
Verwenden von Awk zum Suchen und Ersetzen von Text, Wörtern oder Zeichenfolgen in Dateien
Wenn Sie mit dem Befehlszeilendienstprogramm awk vertraut sind, dann wissen Sie, dass seine leistungsstarken Metriken für die Skriptsprache es zu einem Profi in der Textverarbeitung machen. Linux-Systemadministratoren und professionelle Benutzer finden dieses Tool effektiv bei der Datenextraktion und Berichterstellung.
Der awk-Befehl Syntax für eine einfache Suchen-und-Ersetzen-Operation sieht wie das folgende Snippet aus:
$ awk '{gsub("[THE_OLD_TERM]","[THE_NEW_TERM]"); print}' [TARGETED_FILE]
In der obigen Syntax ersetzt awk THE_OLD_TERM von THE_NEW_TERM in der TARGETED_FILE und drucken Sie den resultierenden Dateiinhalt auf dem Systemterminal aus.
Lassen Sie uns einen praktischen Ansatz verfolgen:
$ awk '{gsub("Linux","ubuntu"); print}' test.txt

Mit den dynamischen Funktionalitäten der beiden sed und awk Befehlstools sollten Sie jetzt Text-, Wort- oder Zeichenfolgenmuster in einer Zieldatei finden, ersetzen und überschreiben. Diese Tools geben einem Systembenutzer die erforderliche Flexibilität, während er sich auf einer Befehlszeilenschnittstelle befindet.