Heim > Artikel > Betrieb und Instandhaltung > Der am häufigsten verwendete Satz von „Sed'-Techniken in Linux-Produktionsumgebungen
Der Befehl sed ist weit verbreitet und einfach zu verwenden und ein leistungsstarkes Werkzeug für die schnelle Textverarbeitung. Tatsächlich verfügt es nicht über viele Fähigkeiten. Auswendiglernen und Verwenden sind die am besten geeigneten Lernkanäle, und es ist eine schwierige Fähigkeit. Aber es ist kompliziert, weil es so viele erweiterte Funktionen gibt. Dieser Artikel konzentriert sich nicht auf die erweiterten Funktionen von sed, sondern erläutert nur einige häufig verwendete Vorgänge.
Wenn Sie es verwenden, werden Sie feststellen, dass es mit einigen Konzepten von vim übereinstimmt. Die Syntax regulärer Ausdrücke ist im Grunde dieselbe und es fallen keine großen Lernkosten an. Aus Sicht der persönlichen Vision und Arbeitseffizienz ist der Befehl sed ein wichtiges Werkzeug, das Programmierer beherrschen müssen.
Diejenigen, die sagen, dass sie Google sofort nutzen können, sind meist daran gewöhnt, den Text in Excel zu kopieren, langsam daran zu arbeiten und sind noch verwirrter, wenn sie auf eine große Anzahl von Dateien stoßen. Das bedeutet nicht, dass eine Familie nicht in die andere eindringt. Dieser Artikel ist nicht für Sie geschrieben.
Eine einfache Einführung
Wie in der Abbildung gezeigt, enthält ein einfacher sed-Befehl drei Hauptteile: Parameter, Bereich und Betrieb. Die zu bedienende Datei kann direkt am Ende der Kommandozeile eingehängt werden. Zusätzlich zur Befehlszeile kann sed auch ein sed-Skript über den Parameter -f angeben. Dies ist eine fortgeschrittene Verwendung und wird nicht zu ausführlich beschrieben.
Verwandte Empfehlungen: „Linux-Tutorial“
Ich werde einige Beispielbefehle viele Male wiederholen. Wenn Sie schlau sind, werden Sie die Regeln auf jeden Fall finden, und manchmal schaffen Sie es auch nicht Ich brauche es nicht einmal zu erklären.
Parameter
-n Dieser Parameter bedeutet --quiet oder --silent. Zeigt an, dass die Ausgabe des Ausführungsprozesses ignoriert wird und nur unsere Ergebnisse ausgegeben werden.
Es gibt einen weiteren Parameter, den wir häufig verwenden: -i.
Nach Verwendung dieses Parameters werden alle Änderungen an der Originaldatei durchgeführt. Ihre Ausgabe überschreibt die Originaldatei. Sehr gefährlich, seien Sie also vorsichtig.
Bereich
1,4 bedeutet, den Inhalt der Zeilen 1, 2, 3 und 4 in der Datei zu finden.
Die Bezeichnung dieses Bereichs ist sehr clever, sehen Sie sich bitte das folgende Beispiel an (bitte ersetzen Sie den Bereichsteil im Bild selbst).
Bei der Bereichsauswahl kann auch ein regulärer Abgleich verwendet werden. Siehe das Beispiel unten.
Der Übersicht halber entsprechen die folgenden Befehle nacheinander der obigen Einführung. Zwischen dem Bereich und der Operation können Leerzeichen stehen.
Operation
Die am häufigsten verwendete Operation ist p, was Drucken bedeutet. Beispielsweise sind die folgenden beiden Befehle äquivalent:
Zusätzlich zum Drucken gibt es auch die folgenden Vorgänge, die wir häufig verwenden.
A, i, c und andere Operationen sind grundlegend, werden aber selten verwendet und werden nicht eingeführt. Zur Veranschaulichung verwenden wir noch einige Befehle.
Schauen wir uns an, was der Befehl sed tun kann, und klicken Sie auf den Befehl, um ihn zu erleben.
Löschen Sie alle Zeilen, die mit # beginnen, und Leerzeilen.
Die am häufigsten verwendeten, wie die folgende.
bedeutet, dass die zweite Zeile in der Gruppendatei gedruckt wird.
Was soll ich also tun, wenn ich mehrere Befehle gleichzeitig ausführen und keine Sed-Skriptdatei schreiben möchte? Dann muss ich den Parameter -e hinzufügen .
Die Operationseinheit von sed ist eine Linie.
Ersetzungsmodus
Das Obige ist der allgemeine Übereinstimmungsmodus des sed-Befehls, verfügt aber auch über einen leistungsstarken Ersetzungsmodus, der das Suchen und Ersetzen bestimmter Werte bedeutet darin und Ergebnisse ausgeben. Der Parameter -n wird bei Verwendung des Ersetzungsmodus selten verwendet.
Der Ersetzungsmodus hat viele Parameter, aber der erste und fünfte Teil können weggelassen werden. Nach dem Ersetzen wird der gesamte Text ausgegeben.
Die erste Hälfte wird verwendet, um einige Bereiche abzugleichen, während die zweite Hälfte die Ersetzungsaktion durchführt.
Bereich
Dieser Bereich ähnelt der oben genannten Bereichssyntax. Siehe das Beispiel unten.
Der spezifische Befehl lautet:
Befehl
Der Befehl hier bezieht sich auf s. Das ist es, was Ersatz bedeutet.
Übereinstimmung finden
Der Suchteil findet die zu ersetzende Zeichenfolge. Dieser Teil kann reine Zeichenfolgen oder reguläre Ausdrücke akzeptieren. Siehe das Beispiel unten.
Der Befehl ist ähnlich:
Ersetzen
Es ist Zeit zu finden Die ausgehende Zeichenfolge wurde ersetzt. Der Inhalt dieses Abschnitts ersetzt den Inhalt im Abschnitt „Übereinstimmungen suchen“.
Leider können in diesem Teil keine regulären Ausdrücke verwendet werden. Die am häufigsten verwendete Methode ist der exakte Ersatz. Ersetzen Sie beispielsweise a durch b.
Aber es gibt auch erweiterte Funktionen. Ähnlich wie bei der regulären API von Java oder Python hat der Ersatz von sed auch die Bedeutung von Matched Pattern, und Group kann ebenfalls abgerufen werden, ohne auf Details einzugehen. Häufig verwendete Substitutionssymbole sind. Nein, wiederholen Sie es noch einmal. Wenn es in einer Ersetzungszeichenfolge verwendet wird, stellt es die ursprünglichen Suchtrefferdaten dar.
Der folgende Befehl umgibt jede Zeile in der Datei in Anführungszeichen.
Flag-Parameter
Diese Parameter können einzeln oder mehrfach verwendet werden. Es werden nur die am häufigsten verwendeten vorgestellt.
Sehen Sie sich die Syntax der beiden Befehle an:
Aufgrund der Regelmäßigkeit müssen viele Zeichen maskiert werden. Sie werden viele \, * und andere Verarbeitungen im Skript durchführen. Zum Ersetzen können Sie |^@! vier Zeichen verwenden.
Zum Beispiel sind die folgenden fünf Befehle gleich.
Hinweis: Diese Methode kann nicht für die erste Hälfte des Bereichs verwendet werden. Ich bin es gewohnt, das Symbol @ zu verwenden.
Andere
Reguläre Ausdrücke
Wie Sie sehen können, sind reguläre Ausdrücke überall in der Befehlszeile. Nachfolgend finden Sie eine kurze Erklärung.
Parameter i
Der Parameter i wurde oben kurz vorgestellt. Seine Funktion besteht darin, die Ausführung der Operation zu ermöglichen Originaldatei. Egal was Sie tun, die Originaldatei wird überschrieben. Das ist sehr gefährlich.
Durch Hinzufügen eines Parameters kann die Originaldatei gesichert werden.
sed -i.bak 's/a/b/' file
Der obige Befehl wirkt sich auf die Originaldatei aus und generiert eine file.bak-Datei. Es wird dringend empfohlen, den i-Parameter auch zur Angabe der Bak-Datei zu verwenden.
Lassen Sie uns anhand zweier Befehle einen Blick auf die Leistungsfähigkeit von sed in Kombination mit anderen Befehlen werfen.
Geben Sie eine Zeile mit einer Länge von mindestens 50 Zeichen aus
Zählen Sie, wie oft jedes Wort in der Datei vorkommt
Suchen Sie im Verzeichnis nach der py-Datei und löschen Sie alle Kommentare auf Zeilenebene
Sehen Sie sich die Zeilen 5-7 und 10-13 an
Nur die IP-Adresse ausgeben
Das obige ist der detaillierte Inhalt vonDer am häufigsten verwendete Satz von „Sed'-Techniken in Linux-Produktionsumgebungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!