awk
verwendet regelmäßige Ausdrücke, um bestimmte Muster in Zeilen zu finden. Dies kann so einfach sein, wie ein bestimmtes Wort oder so komplex zu entsprechen, wie es mit der regulären Expressionsyntax übereinstimmen. Es kann Zeilen in Felder basieren, die auf einem Trennzeichen basieren (häufig ein Speicherplatz, Comma oder Registerkarte), und Sie können mit $ 1
, $ 2
zugreifen usw. Zugreifen. Dies macht es ideal für das Extrahieren spezifischer Informationen aus strukturierten Daten. (Anzahl der Felder), nr
(Datensatznummer) und $ 0
(ganze Zeile), die es flexibel und leistungsstark machen. Innerhalb der Verarbeitung. Es ist am besten für einfache, zeilenorientierte Änderungen geeignet, z. B. das Ersetzen von Text, das Löschen von Zeilen oder das Einfügen von Text. Zu den Schlüsselmerkmalen gehören: sed
Ermöglicht die Angabe von Adressbereichen (Zeilennummern, Muster), um Befehle auf bestimmte Zeilen anzuwenden. (Löschen), i \ text
(einfügen), a \ text
(anhängen) und c \ text
(Änderung). Bearbeiten: Verwenden der Option -I
SED
kann die Dateien direkt ändern, wodurch es für Bulk-Texttransformationen effizient wird. awk
eignet sich am besten für die komplexe Datenverarbeitung und -extraktion, während sed
für einfache, zeilen-für-Linie-Bearbeitungen besser ist. Linux -Skriptszenarien: awk -Anwendungsfälle:
Piping: Die unkomplizierteste Möglichkeit besteht darin, die Ausgabe eines Befehls zur Eingabe des anderen auszugeben. Beispielsweise kann sed
eine Datei vorbereiten, unerwünschte Zeichen aufräumen und dann awk
die gereinigten Daten verarbeiten und spezifische Informationen extrahieren. awk '{drucken $ 1, $ 3}'
Dieses erste entfernt Semikolons aus Eingabe. <code> awk
kann verwendet werden, um basierend auf den Eingabedaten SED
Befehle zu generieren. Dies ist nützlich, um kontextabhängige Ersatz auszuführen. Beispielsweise können Sie sed
verwenden, um die Zeilenende zu normalisieren oder unerwünschte Zeichen zu entfernen, bevor Sie awk
die Daten verwenden. Sie können sed
verwenden, um das Datumsformat zu standardisieren, bevor Sie awk
verwenden, um die Daten zu analysieren. awk '{druck $ 1, $ nf}'
In diesem Beispiel wird ein bestimmtes Datumsformat angenommen und verwendet sed
, um es vor awk
das Datum und das letzte Feld zu extrahieren. sed
excels bei einfachen, zeilenorientierten Transformationen, während awk
bei komplexer Datenverarbeitung und Musteranpassung leuchtet. awk
und sed
sind idealerweise für die Automatisierung von Textverarbeitungsaufgaben in Linux -Shell -Skripten geeignet. Auf diese Weise können Sie wiederverwendbare und effiziente Lösungen für wiederkehrende Textmanipulationsanforderungen erstellen. Variablen zum Speichern von Dateinamen, Mustern oder Ersatzketten. Dies macht Ihr Skript flexibler und wiederverwendbarer. Dies ist entscheidend für robustes Scripting. Substitution: Verwenden Sie die Befehlssubstitution ( $ (...)
) Um die Ausgabe von awk
und sed
zu erfassen und sie in Ihrem Skript zu verwenden. output_file = & quot; processed_data.txt & quot; # Verwenden Sie SED, um führende/nachverfolgende Whitespace SED zu entfernen. | # Verwenden awk, um bestimmte Felder zu extrahieren und Berechnungen awk '{drucken $ 1, $ 3 * 2}' & gt; & quot; $ output_file & quot; Echo & quot; Daten erfolgreich verarbeitet. Ausgabe auf $ output_file & quot;
Dieses Skript wird mithilfe SED
das Leitenden und nachverfolgtes Whitespace entfernt und verwendet dann awk
, um das erste und dritte Felder zu extrahieren und das dritte Feld mit 2 zu multiplizieren, das Ergebnis in processed_data.txt
. Fehlerbehandlung kann hinzugefügt werden, um zu überprüfen, ob die Eingabedatei vorhanden ist.
Das obige ist der detaillierte Inhalt vonWie benutze ich Awk und SED für die erweiterte Textverarbeitung unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!