Linux ist ein System voller Befehle, bei denen jeder eine wesentliche Rolle für das Verhalten bestimmter Aufgaben spielt, unabhängig davon, ob es sich um Benutzer-, Objekt- oder Supportverwaltung handelt. Jeder Befehl ist an Linux beteiligt, und einer dieser Befehle ist Sed Wir werden in EinWie.com im Detail sprechen.
Im Gegensatz zu anderen Texteditoren ist es mit sed möglich, Text in einer Pipeline zu filtern, wenn wir über ausgewählten Inhalt gehen.
- Wir können Text auswählen
- Wir können Text ersetzen
- Fügen Sie dem Text Zeilen hinzu
- Wir können Zeilen aus dem Text entfernen
- Ermöglicht das Ändern oder Beibehalten einer Originaldatei
Die allgemeine Syntax für die Verwendung von sed lautet wie folgt:
sed OPTIONEN ... [SCRIPT] [INPUT_FILE ...]
Wir werden einige Möglichkeiten lernen, diesen Befehl unter Linux zu verwenden.
Contents
1. Verwendung des SED-Befehls unter Linux
echo solvitic | sed 's / vitic / vetic /'
In diesem Fall fordern wir sed auf, das Wort “vitic” durch “vetic” zu ersetzen. Wenn Sie die Eingabetaste drücken, ist dies das Ergebnis:
Wir sehen, dass die Änderung automatisch erfolgt.
2. Text mit dem Befehl SED Linux auswählen
In diesem Fall haben wir eine Textdatei, die auf dem Desktop gehostet wird:
Jetzt werden wir die folgende Zeile verwenden:
weniger EinWie.com.txt
Wenn Sie die Eingabetaste drücken, ist dies das Ergebnis:
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. Wenn wir beispielsweise die Zeilen zwei bis sieben extrahieren möchten, führen wir Folgendes aus:
sed -n '2,7p' EinWie.com.txt
Wir werden folgendes sehen:
Wir müssen das Komma in den zuzuweisenden Bereichen berücksichtigen (2,7). Der Parameter p gibt an, dass es “übereinstimmende Zeilen drucken” bedeutet. Mit diesem Befehl werden alle Zeilen dieses Bereichs gedruckt, und die Option -n (leise) kümmert sich darum Text, der nicht diesem Bereich entspricht, wird nicht angezeigt.
Wir können den Parameter -e (Ausdruck) verwenden, um mehrere Auswahlen zu treffen, zum Beispiel:
sed -n -e '1,2p' -e '5,6p' EinWie.com.txt
Mit sed ist es möglich, die Startzeile auszuwählen, dann geben wir an, welche in der Datei durchlaufen werden soll und dass die alternativen Zeilen gedruckt werden, zum Beispiel geben wir Folgendes ein:
sed -n '1 ~ 3p' EinWie.com.txt
In diesem Fall bezieht sich die erste Zahl auf die Startzeile und die zweite Zahl gibt an, welche Zeilen nach der Startzeile angezeigt werden:
Eine andere Verwendung von sed ist die Möglichkeit, Zeilen auszuwählen, in denen sich die übereinstimmenden Textmuster befinden. Wenn wir nicht wissen, woher die Zeilennummer stammt, können wir Folgendes ausführen:
sed -n '/ ^ Run / p' EinWie.com.txt
Wir werden die Zeilen sehen, die mit diesem Begriff beginnen.
3. So erstellen Sie Ersatz mit SED Linux
Im grundlegenden Teil haben wir gesehen, wie man Text mit sed ersetzt, dort haben wir den Parameter -s (Substitution) verwendet. Dann gibt die erste Zeichenfolge das Suchmuster an und die zweite bezieht sich auf den Text, durch den es ersetzt wird.
sed -ns / Aufgaben / Aktionen / p 'EinWie.com.txt
In diesem Beispiel ersetzen wir “Aufgaben” durch “Aktionen”:
Mit dem Parameter p sed stoppt er automatisch nach dem ersten Match. Um eine globale Suche durchzuführen und die Änderung im Allgemeinen vorzunehmen, müssen wir “g” hinzufügen:
sed -ns / Aufgaben / Aktionen / gp 'EinWie.com.txt
Wenn wir möchten, dass die Groß- und Kleinschreibung nicht berücksichtigt wird, fügen wir das “i” hinzu:
sed -ns / Aufgaben / Aktionen / gpi 'EinWie.com.txt
Es ist möglich, Einschränkungen für das Ersetzen nur für bestimmte Abschnitte der Datei festzulegen. Zunächst werden die zu analysierenden Zeilen aufgelistet:
sed -n '1,3p' EinWie.com.txt
Sehen wir uns Folgendes an: Wir können zwei Leerzeichen finden und durch eines ersetzen:
sed -n '1.3 s / * / / gp' EinWie.com.txt
Das Sternchen (*) steht für null oder mehr des zuvor ausgewählten Zeichens.
Mit dem folgenden Befehl können Sie das Suchmuster auf ein einzelnes Leerzeichen reduzieren:
sed -n '1.3 s / * / / gp' EinWie.com.txt
Wir sehen den Unterschied in den Ergebnissen:
Im letzteren Fall stimmt das Sternchen mit null oder mehr des vorherigen Zeichens überein. Dadurch sieht jedes Nicht-Leerzeichen durch Anwenden des Befehls wie ein “Null-Leerzeichen” aus.
Um zwei oder mehr Substitutionen gleichzeitig vorzunehmen, führen wir Folgendes aus:
sed -n -es / ausgeführt / angewendet / gip '-es / Aufgaben / Aktionen / gip' EinWie.com.txt
4. SED-Ersatzoptionen unter Linux
Wir können sed auch verwenden, um Dateinamen aus dem System zu extrahieren. In diesem Fall müssen wir berücksichtigen, dass jedes Objekt mit einem Suchmuster (Unterausdrücke) übereinstimmen muss, das nummeriert werden kann (bis zu maximal neun Elemente).
Diese Nummern können dann verwendet werden, um auf bestimmte Unterausdrücke zu verweisen.
Der Unterausdruck muss in Klammern [()] eingeschlossen sein und vor den Klammern muss ein Backslash () stehen, damit sie nicht als normales Zeichen erkannt werden. Beispiel:
sed 's / ([^:] * ). * / 1 /' / etc / passwd
- sed ‘s /: gibt den Befehl sed und den Beginn des Ersetzungsausdrucks an.
- (: Schließen Sie den Unterausdruck ein, dem ein Backslash vorangestellt ist
- [^:] *: 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, dh einem anderen Zeichen als einem Doppelpunkt
- ): Die schließende Klammer [)] mit einem Backslash
- . *: ist der zweite Suchunterausdruck, der “ein beliebiges Zeichen und eine beliebige Anzahl davon” angibt.
- / 1: ist der Ersetzungsteil des Ausdrucks, der eine Zahl 1 mit einem Backslash () enthält und angibt, dass der Text mit dem ersten Unterausdruck übereinstimmt
- / ‘: Beende den Befehl sed
Mit dem vorherigen Befehl haben wir nach Zeichenfolgen gesucht, die keinen Doppelpunkt enthalten, da jede Zeile der Datei / etc / passwd mit dem Benutzernamen beginnt, der in einem Doppelpunkt endet. Wir können diesen Wert ersetzen, indem wir den Benutzernamen mit dem folgenden Befehl isolieren:
sed 's / ([^:] * ) (. * ) / 2 /' / etc / passwd
Wir können nur die Benutzernamen mit dem folgenden Befehl anzeigen:
sed 's /:.*// "/ etc / passwd
Eine weitere Option bei sed ist die Verwendung des Parameters c (cut – cut), um Text in einer Datei zu ersetzen. Beispiel:
sed '/ Linux / c Linux-Betriebssystem' EinWie.com.txt
5. Fügen Sie unter Linux Zeilen und Text mit SED ein
Eine weitere Aufgabe bei sed ist das Einfügen neuer Zeilen und Texte in eine Datei. In diesem Fall haben wir die folgenden Daten:
Wir können eine neue Zeile einfügen, die angibt, unter welcher sie eingefügt wird:
sed '/ Ub / a -> Eingefügt!' EinWie.com.txt
Es ist auch möglich, den Befehl Einfügen (i) zu verwenden, um eine neue Zeile über der Übereinstimmung einzufügen:
sed '/ Wi / i -> Eingefügt!' EinWie.com.txt
Wir können das kaufmännische Und-Zeichen (&) verwenden, um einer übereinstimmenden Zeile in der Datei neuen Text hinzuzufügen. Wir führen Folgendes aus:
sed 's /.*/--> Eingefügt & /' EinWie.com.txt
6. So löschen Sie eine Zeile mit SED Linux
In diesem Fall müssen wir den Parameter d (Löschen) verwenden, um beispielsweise die zweite Zeile zu löschen, die wir ausführen:
sed '2d' EinWie.com.txt
Bei Bedarf können wir einen Bereich entfernen:
sed '1,4d' EinWie.com.txt
Um Linien außerhalb eines Bereichs zu entfernen, müssen Sie ein Ausrufezeichen (!) Auf folgende Weise verwenden:
sed '2,4! d' EinWie.com.txt
7. Speichern von Änderungen mit SED unter Linux
Um die vorgenommenen Änderungen zu übernehmen, können Sie die Option In-place (-i) verwenden, damit sed die Änderungen in die Originaldatei schreibt. Aus Sicherheitsgründen können wir jedoch eine Sicherungserweiterung wie folgt hinzufügen (wir haben die Zeilen gesichert mit dem Wort Wi):
sed -i'.bak '' /^.*Wi.*$/d 'EinWie.com.txt
Wir listen den Inhalt auf:
Katze EinWie.com.txt.bak
Es ist möglich, die Ausgabe mit denselben Ergebnissen in eine neue Datei umzuleiten:
sed -i'.bak '' /^.*Wi.*$/d 'EinWie.com.txt> EinWie.com1.txt
Mit sed können wir unter Linux vollständig mit den Dateien arbeiten, da wir jede ihrer Verwendungsoptionen gesehen haben.