- 1. So verwenden Sie den SED-Befehl unter Linux
- 2. Auswählen von Text mit dem SED-Linux-Befehl
- 3. So erstellen Sie Ersatz mit SED Linux
- 4. SED-Ersatzoptionen unter Linux
- 5. Einfügen von Zeilen und Text mit SED in Linux
- 6. So löschen Sie eine Zeile mit SED Linux
- 7. So speichern Sie Änderungen mit SED unter Linux
Linux ist ein System voller Befehle, bei denen jeder eine wesentliche Rolle im Verhalten bestimmter Aufgaben spielt, egal ob Benutzer-, Objekt- oder Support-Management, jeder Befehl hat seine Beteiligung an Linux und einer dieser Befehle ist Sed, über den wir sprechen werden bei Solvetic im Detail.
Was ist der sed-Befehl unter Linux?Der Befehl sed ist buchstäblich ein Flow-Editor, den wir verwenden können, um Textarbeiten mit grundlegenden Funktionen in einem Eingabefluss entweder aus einer Datei oder gegebenenfalls aus einer Pipeline zu ändern.
Im Gegensatz zu anderen Texteditoren ist es mit sed möglich, Text in einer Pipeline zu filtern, während wir den ausgewählten Inhalt durchgehen.
VorteilDie Vorteile der Verwendung von sed unter Linux sind:
- Wir können Text auswählen
- Wir können Text ersetzen
- Zeilen zum Text hinzufügen
- Wir können Zeilen aus dem Text entfernen
- Ermöglicht Ihnen, eine Originaldatei zu ändern oder beizubehalten
Die allgemeine Syntax für die Verwendung von sed lautet wie folgt:
sed OPTIONEN… [SCRIPT] [INPUT_FILE…]Wir werden einige Möglichkeiten kennenlernen, diesen Befehl unter Linux zu verwenden.
1. So verwenden Sie den SED-Befehl unter Linux
Grundlegende Verwendung von sedIn diesem Beispiel verwenden wir "echo", um zu sehen, wie der Befehl sed einen Teil des eingegebenen Textes ersetzen kann. Wir geben Folgendes ein:
Echosolvitische | sed 's / vitic / vetic /'In diesem Fall weisen wir sed an, das Wort „vitic“ durch „vetic“ zu ersetzen. Wenn Sie die Eingabetaste drücken, wird dies das Ergebnis sein:
VERGRÖSSERN
Wir sehen, dass die Änderung automatisch erfolgt.
2. Auswählen von Text mit dem SED-Linux-Befehl
Schritt 1
In diesem Fall haben wir eine Textdatei, die auf dem Desktop gehostet wird:
VERGRÖSSERN
Jetzt verwenden wir die folgende Zeile:
weniger Solvetic.txtSchritt 2
Wenn Sie die Eingabetaste drücken, wird dies das Ergebnis sein:
VERGRÖSSERN
Mit sed ist es möglich, einige Zeilen der Datei auszuwählen, dazu müssen wir die Anfangs- und Endzeilen des auszuwählenden Bereichs angeben, zum Beispiel, wenn wir die Zeilen zwei bis sieben extrahieren möchten, führen wir aus:
sed -n '2,7p' Solvetic.txtSchritt 3
Wir werden folgendes sehen:
VERGRÖSSERN
Wir müssen das Komma in den zuzuweisenden Bereichen (2,7) beachten, der Parameter p bedeutet "passende Zeilen drucken", damit druckt der Befehl sed alle Zeilen dieses Bereichs und das -n (quiet ) sorgt dafür, dass kein Text angezeigt wird, der nicht diesem Bereich entspricht.
Schritt 4
Wir können den Parameter -e (Ausdruck) verwenden, um mehrere Auswahlen zu treffen, zum Beispiel:
sed -n -e '1,2p' -e '5,6p' Solvetic.txt
VERGRÖSSERN
Schritt 5
Mit sed ist es möglich, die Startzeile auszuwählen, dann geben wir an, welche in der Datei durchlaufen werden soll und um die alternativen Zeilen zu drucken, geben wir beispielsweise ein:
sed -n '1 ~ 3p' Solvetic.txtIn diesem Fall bezieht sich die erste Zahl auf die Startzeile und die zweite Zahl sagt sed, welche Zeilen nach der Startzeile angezeigt werden:
VERGRÖSSERN
Schritt 6
Eine weitere Verwendung von sed ist die Möglichkeit, Zeilen auszuwählen, in denen sich die passenden Textmuster befinden. Wenn wir nicht wissen, woher die Zeilennummer stammt, können wir Folgendes ausführen:
sed -n '/ Ausführen / p' Solvetic.txt
VERGRÖSSERN
Wir werden die Zeilen sehen, die mit diesem Begriff beginnen.
3. So erstellen Sie Ersatz mit SED Linux
Schritt 1
Im grundlegenden Teil haben wir gesehen, wie man Text mit sed ersetzt, dort haben wir den Parameter -s (Ersetzung) verwendet. Dann gibt die erste Zeichenfolge das Suchmuster an und die zweite verweist auf den Text, durch den sie ersetzt werden soll.
sed -n 's / Aufgaben / Aktionen / p' Solvetic.txtIn diesem Beispiel ersetzen wir "Aufgaben" durch "Aktionen":
VERGRÖSSERN
Schritt 2
Mit dem Parameter p sed stoppt es automatisch nach der ersten Übereinstimmung, um eine globale Suche durchzuführen und die Änderung im Allgemeinen vorzunehmen, müssen wir "g" hinzufügen:
sed -n 's / Aufgaben / Aktionen / gp' Solvetic.txtWenn die Groß-/Kleinschreibung nicht beachtet werden soll, fügen wir das "i" hinzu:
sed -n 's / Aufgaben / Aktionen / gpi' Solvetic.txtSchritt 3
Es ist möglich, Ersetzungsbeschränkungen nur für bestimmte Abschnitte der Datei zu erstellen, zunächst listen wir die zu analysierenden Zeilen auf:
sed -n '1,3p' Solvetic.txt
VERGRÖSSERN
Schritt 4
Sehen wir uns Folgendes an, wir können herausfinden, wo zwei Leerzeichen sind, und sie durch eines ersetzen:
sed -n '1.3 s / * / / gp' Solvetic.txtDas Sternchen (*) steht für null oder mehr des zuvor ausgewählten Zeichens.
Schritt 5
Sie können das Suchmuster mit dem folgenden Befehl auf ein einzelnes Leerzeichen reduzieren:
sed -n '1.3 s / * / / gp' Solvetic.txtWir sehen den Unterschied in den Ergebnissen:
VERGRÖSSERN
Im letzteren Fall entspricht das Sternchen null oder mehr des vorherigen Zeichens, wodurch jedes Nicht-Leerzeichen wie ein "Null-Leerzeichen" aussieht, wenn der Befehl angewendet wird.
Schritt 6
Um zwei oder mehr Ersetzungen gleichzeitig vorzunehmen, führen wir Folgendes aus:
sed -n -e 's / ausgeführt / angewendet / gip' -e 's / Tasks / Aktionen / gip' Solvetic.txt
VERGRÖSSERN
4. SED-Ersatzoptionen unter Linux
Wir können sed auch verwenden, um Dateinamen aus dem System zu extrahieren, in diesem Fall müssen wir bedenken, dass jedes Objekt einem Suchmuster (Unterausdrücken) entsprechen muss, das nummeriert werden kann (maximal neun Elemente).
Schritt 1
Diese Nummern können dann verwendet werden, um auf bestimmte Unterausdrücke zu verweisen.
Der Unterausdruck muss in Klammern [()] eingeschlossen werden und den Klammern muss ein umgekehrter Schrägstrich (\) vorangestellt werden, damit sie nicht als normales Zeichen erkannt werden, zum Beispiel:
sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd
VERGRÖSSERN
Die in diesem Befehl verwendeten Variablen sind
- sed 's /: gibt den sed-Befehl und den Beginn des Ersetzungsausdrucks an.
- \ (: umschließt den Unterausdruck mit einem vorangestellten Backslash
- [^:] *: ist der erste Unterausdruck des Suchbegriffs, der eine Gruppe in Klammern enthält, das Caret-Zeichen (^) bedeutet "nein", wenn es in einer Gruppe verwendet wird, d. h. jedes Zeichen, das kein Doppelpunkt ist
- \): Die schließende Klammer [)] mit einem Backslash
- .*: ist der zweite Suchunterausdruck, der "beliebiges Zeichen und eine beliebige Anzahl davon" angibt.
- / \ 1: ist der Ersetzungsteil des Ausdrucks, der eine Zahl 1 mit vorangestelltem Backslash (\) enthält und anzeigt, dass der Text mit dem ersten Unterausdruck übereinstimmt
- / ': Beende den sed-Befehl
Schritt 2
Mit dem vorherigen Befehl haben wir nach einer beliebigen Zeichenfolge gesucht, die keinen Doppelpunkt enthält, da jede Zeile der Datei /etc/passwd mit dem Benutzernamen beginnt, der mit einem Doppelpunkt endet. Wir können diesen Wert ersetzen, indem wir den Benutzernamen mit dem folgenden Befehl isolieren:
sed 's / \ ([^:] * \) \ (. * \) / \ 2 /' / etc / passwd
VERGRÖSSERN
Schritt 3
Wir können nur die Benutzernamen mit dem folgenden Befehl anzeigen:
sed 's /:.*// "/ etc / passwdEine andere Option mit sed besteht darin, den Parameter c (cut - cut) zu verwenden, um Text in einer Datei zu ersetzen, zum Beispiel:
sed '/Linux/c Linux-Betriebssystem' Solvetic.txt
VERGRÖSSERN
5. Einfügen von Zeilen und Text mit SED in Linux
Schritt 1
Eine weitere mit sed zu verwendende Aufgabe besteht darin, neue Zeilen und Text in eine Datei einzufügen, in diesem Fall haben wir die folgenden Daten:
VERGRÖSSERN
Schritt 2
Wir können eine neue Zeile einfügen und angeben, unter welcher sie eingefügt wird:
sed '/Ub/a -> Eingefügt!' Solvetic.txt
VERGRÖSSERN
Schritt 3
Es ist auch möglich, den Befehl Einfügen (i) zu verwenden, um eine neue Zeile über dem Treffer einzufügen:
sed '/Wi/i -> Eingefügt!' Solvetic.txt
VERGRÖSSERN
Schritt 4
Wir können das kaufmännische Und-Zeichen (&) verwenden, um neuen Text zu einer passenden Zeile in der Datei hinzuzufügen, wir führen Folgendes aus:
sed 's /.*/--> Eingefügt & /' Solvetic.txt
VERGRÖSSERN
6. So löschen Sie eine Zeile mit SED Linux
Für diesen Fall müssen wir den Parameter d (delete) verwenden, um zum Beispiel die zweite von uns ausgeführte Zeile zu löschen:
sed '2d' Solvetic.txt
VERGRÖSSERN
Bei Bedarf können wir einen Bereich entfernen:
sed '1,4d' Solvetic.txtUm Zeilen außerhalb eines Bereichs zu entfernen, müssen wir ein Ausrufezeichen (!) wie folgt verwenden:
sed '2,4!d' Solvetic.txt
7. So speichern Sie Änderungen mit SED unter Linux
Schritt 1
Um die vorgenommenen Änderungen zu übernehmen, ist es möglich, die In-Place-Option (-i) zu verwenden, damit sed die Änderungen in die Originaldatei schreibt, aber für mehr Sicherheit können wir wie folgt eine Backup-Erweiterung hinzufügen (wir haben gesichert die Zeilen mit dem Wort Wi):
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txtWir listen die Inhalte auf:
Katze Solvetic.txt.bak
VERGRÖSSERN
Schritt 2
Es ist möglich, die Ausgabe mit den gleichen Ergebnissen in eine neue Datei umzuleiten:
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt
VERGRÖSSERN
Mit sed können wir unter Linux vollständig mit den Dateien arbeiten, da wir jede seiner Verwendungsoptionen gesehen haben.