So ändern Sie Text mit regulären Ausdrücken mit dem sed Stream Editor

Inhalt

So ändern Sie Text mit regulären Ausdrücken mit dem sed Stream Editor

Alle Computerbenutzer der Welt, früher oder später, ändert eine Textzeichenfolge, entweder manuell oder automatisch. Lassen Sie sich vorstellen Flow-Editor, aber, wodurch Sie massive Textänderungen in Strings und Dateien vornehmen können.

Reguläre Ausdrücke auf der Kommandozeile

Der sed Sequenzeditor, ein Tool, das standardmäßig auf vielen Linux-Distributionen verfügbar ist, ermöglicht es Ihnen, Text einfach und direkt zu analysieren und zu transformieren, ob sich der Text in Dateien befindet oder nur einfache Zeichenfolgen auf der Befehlszeile. Es kann auch Verzeichnislisten analysieren, Verarbeiten von Listenergebnissen und den meisten anderen Arten von Informationen, die in oder aus Ihrer Terminalsitzung fließen können.

So überprüfen Sie, ob sed in Ihrer Linux-Distribution aktiviert ist, Schreiber sed --version auf der Kommandozeile:

Sed-Stream-Editor-Version

Machen Sie sich keine Sorgen, wenn Ihre Version etwas älter ist als die hier gezeigte. Für die Beispiele, die wir hier besprechen, wird es fast definitiv in Ordnung sein. Wenn das Tool in Ihrer Distribution nicht aktiviert ist, Sie können es installieren mit sudo apt install sed für Ubuntu-basierte Betriebssysteme / Debian, Ö sudo yum install sed für RedHat-basierte Betriebssysteme / Drehzahl.

sed Wenden Sie eine kleine Texttransformation mit einem sogenannten Regex oder regulären Ausdruck an. Ein regulärer Ausdruck ist eine Möglichkeit und Methode zum Ausdrücken von Suchoperationen, komplexere textbasierte Ersetzung und Modifikation in einem noch lesbaren Format. Reguläre Ausdrücke sind kompliziert und für Anfänger schwer zu lesen. Sie können unseren Leitfaden lesen, Wie verwenden Sie Regex eigentlich?? Weitere Informationen zum Lesen und Schreiben von Regex.

VERBUNDEN: Wie verwenden Sie Regex eigentlich??

Für diesen Beitrag, wir bleiben bei leicht verständlichen und lesbaren regulären Ausdrücken. Als Beispiel, das folgende ist ein einfacher ersatz:

Hallo, Cloudsavvyit Fan-Transformation

Wie du siehst, wir haben einen kleinen Textausschnitt wiederholt und, anschließend, Wir transformieren es mit dem sed-Tool. Wir verwenden den Befehl sed 's’ (Ersatz) und wir geben an, was wir ändern wollten. Du kannst das auch anders lesen wie s|from|to| wo '|’ ist das Trennzeichen zwischen den Abschnitten / Felder, 'S’ ist der Befehl y 'von’ Und bis’ sind die beiden Optionen, die an den Befehl 's' übergeben werden.

Weil, wir transformieren ¡Hola, Fans von Cloud-Informationstechnologien!’ ein “Hallo, systempeaker.com-Fans!” Ändern Sie nur einen Teil des Textes mit dem Sed-Stream-Editor. Nehmen wir ein etwas komplexeres Beispiel.

Text mit dem sed-Stream-Editor in eine Datei umwandeln

Hier erstellen wir zunächst eine Datei mit 3 Zeilen mit dem echo Befehl mit Umleitung auf eine Datei (‘>’ eine neue Datei erstellen, Überschreiben einer Datei mit demselben Namen, falls vorhanden, und '>>’ wird einer Datei hinzugefügt, ohne sie anderweitig zu ändern). Nächste, wir zeigen den Inhalt der Datei mit dem cat Befehl.

Später transformieren wir den Inhalt der Datei mit dem sed Werkzeug direkt. Es zu tun, wir spezifizieren die Option '-i’ für sed, das die Datei an Ort und Stelle bearbeitet. Die eigentliche Anweisung zur Texttransformation ist die gleiche wie zuvor. Und schließlich geben wir den Namen der Datei am Ende des Befehls an. Wir prüfen dann den Inhalt der Datei und stellen fest, wie sich unsere Eingabe verändert hat.

Wie kannst du anfangen zu sehen, oder kennst du schon aus vergangenen erfahrungen, im sed-tool steht viel kraft zur verfügung.

Lassen Sie uns die Dinge ein wenig aufpeppen, indem wir unsere Regex- und Schreibmethode der sed-Texttransformationsanweisung erweitern:

Ein komplexerer regulärer Ausdruck und eine sed-Anweisung

In diesem Beispiel, wir ersetzen den Buchstaben 'h’ für H’ und wir haben es weltweit geschafft (schau dir den Qualifier 'g . an’ gegen Ende der ersten Anweisung an sed) und ohne Unterscheidung zwischen Groß- und Kleinschreibung (beobachte la 'i’ Qualifier auch am Ende der ersten Anweisung). Das H’ stimmt auch dann überein, wenn die Datei 'H . enthält’ aufgrund des Qualifiers 'i'.

Später starten wir eine neue Anweisung (Anleitung Ende / Ende mit ';’ genau wie in vielen anderen Programmiersprachen) in dem wir '.com . entfernen’ einfach suchen und durch nichts ersetzen.

Beachten Sie auch, wie wir verschiedene alternative Feldtrennzeichen verwendet haben / Befehl. Im ersten Beispiel verwenden wir '|’ was im Allgemeinen ein ziemlich ungewöhnliches und einfach zu verwendendes Feldtrennzeichen ist. Viele Leute verwenden '/', Auch wenn dies zu Problemen beim Parsen von Routennamen führen kann, die oft '/' enthalten.

In der Lage sein, verschiedene Feldalternativen-Trennzeichen zu verwenden / Mit dem Befehl können Sie problemlos ein anderes Trennzeichen verwenden, wenn Ihre Textzeichenfolge tatsächlich ein bestimmtes Zeichen enthält oder wahrscheinlich enthalten wird.

sed mit Dateien verwenden

Sehen wir uns ein weiteres sed-basiertes Beispiel an, bei dem wir Text in eine Datei einfügen:

Einfügen von Text mit dem sed-Stream-Editor

In diesem Beispiel, Wir erstellen eine Datei mit 5 Zeilen und dann verwenden wir eine etwas komplexe sed-Anweisung, um ein Trennzeichen zu injizieren '-‘ nach jeder zweiten Zeile. Obwohl die Syntax größtenteils selbsterklärend ist, Interessant ist, dass der Befehl 'r’ (lesen / Text aus einer Datei hinzufügen) gibt den Namen der Injektionsdatei direkt und noch innerhalb der Hauptanweisung an, ohne Trennzeichen.

Das kann man auch anfangen zu sehen, beim Erlernen einer Syntax für reguläre Ausdrücke, es ist von Vorteil, die sed-Syntax gründlich zu lernen. Es ist fast so, als würde man zwei neue Fremdsprachen lernen, Der Vorteil ist jedoch, dass die sed-Syntax mit Ihrem Bedarf an zusätzlicher Komplexität wachsen kann.

Sehen wir uns ein Beispiel an, bei dem wir einen bestimmten Textbereich durch etwas anderes ersetzen:

Ändern Sie bestimmte Textbereiche mit Durst

In diesem Beispiel, wir suchen den Text '3', und für diese Zeile ersetzen wir 'C’ von 'Z'. Du siehst, wie vielseitig Durst sein kann.

Beenden, Wir können die Analyse anderer Arten von Eingaben analysieren:

Parsen anderer Arten von Texteingaben mit sed

Wie du siehst, Wir erstellen 3 Dateien und fordern Sie eine Liste der Verzeichnisse mit dem ls Befehl. Später nehmen wir diese Ausgabe als Eingabe für sed (Verwenden des Linux-Pipe-Befehls, ‘|’) und wir verwandeln einen Teil unserer Verzeichnisliste in einen Unterstrich.

Der Sequenzeditor sed ist ein vielseitiges Tool, mit dem Sie fast jeden Text direkt über die Terminal-Befehlszeile analysieren und transformieren können, ob die Eingabe von einem einfachen echo Stellungnahme, anderen Linux-Tools oder aus einer Nur-Text-Datei. Genießen!

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.