'tab' wird in der tab delimitierten Datei als Trennzeichen verwendet. Diese Art von Textdatei wird erstellt, um verschiedene Arten von Textdaten in einem strukturierten Format zu speichern. Unter Linux existieren verschiedene Befehlstypen, um diese Art von Datei zu analysieren. Der Befehl 'awk' ist eine der Möglichkeiten, die tab-delimitierte Datei auf unterschiedliche Weise zu analysieren. Die Verwendung des Befehls "awk" zum Lesen der Tabulaturdatei wurde in diesem Tutorial gezeigt.
Erstellen Sie eine Registerkartendatei:
Erstellen Sie eine Textdatei mit dem Namen Benutzer.txt Mit dem folgenden Inhalt, um die Befehle dieses Tutorials zu testen. Diese Datei enthält den Namen, die E -Mail, den Benutzernamen und das Passwort des Benutzers des Benutzers.
Benutzer.txt
Name E -Mail -Username PasswortBeispiel-1: Drucken Sie die zweite Spalte einer Registerkartendatei mit der Option -f-Option aus
Der folgende Befehl 'SED' druckt die zweite Spalte einer Registerkartendelimited-Textdatei. Hier das '-F' Die Option wird verwendet, um den Feldabscheider der Datei zu definieren.
$ CAT -Benutzer.txt
$ awk -f '\ t' 'print $ 2' Benutzer.txt
Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. Die zweite Spalte der Datei enthält die E -Mail -Adressen des Benutzers, die als Ausgabe angezeigt werden.
Beispiel-2: Drucken Sie die erste Spalte einer tabenzussionierten Datei mit der FS-Variablen aus
Der folgende Befehl 'SED' druckt die erste Spalte einer Registerkartendelimited-Textdatei. Hier, Fs (Feldabscheider) Variable wird verwendet, um den Feldabscheider der Datei zu definieren.
$ CAT -Benutzer.txt
$ awk 'print $ 1' fs = '\ t' Benutzer.txt
Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. Die erste Spalte der Datei enthält die Namen des Benutzers, die als Ausgabe angezeigt werden.
Beispiel-3: Drucken Sie die dritte Spalte einer Registerkartendatei mit Formatierung aus
Der folgende Befehl 'SED' druckt die dritte Spalte der Registerkartendelimited Textdatei mit Formatierung mithilfe des Fs variabel und printf. Hier das Fs Variable wird verwendet, um den Feldabscheider der Datei zu definieren.
$ CAT -Benutzer.txt
$ awk 'begin fs = "\ t" printf "%10s \ n", $ 3' Benutzer.txt
Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. Die dritte Spalte der Datei enthält den hier gedruckten Benutzernamen.
Beispiel-4: Drucken Sie die dritte und vierte Spalten der Registerkartendatei mithilfe von OFS aus
OFS (Ausgangsfeldabscheider) wird verwendet, um einen Feldabscheider in den Ausgang hinzuzufügen. Der folgende Befehl 'awk' teil.
$ CAT -Benutzer.txt
$ awk -f "\ t" 'vons = "\ t" print $ 3, $ 4> ("Ausgabe.txt ") 'Benutzer.txt
$ CAT -Ausgabe.txt
Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt. Die 3. und 4. Spalten enthalten den hier gedruckten Benutzernamen und Passwort, das hier gedruckt wurde.
Beispiel-5: Ersetzen Sie den jeweiligen Inhalt der Tabulaturdatei
Sub () -Funktion wird in 'awk zum Befehl zur Substitution verwendet. Der folgende Befehl 'awk' sucht die Nummer 45 und ersetzt die Nummer 90, wenn die Suchnummer in der Datei vorhanden ist. Nach der Substitution wird der Inhalt der Datei in der Ausgabe gespeichert.TXT -Datei.
$ CAT -Benutzer.txt
$ awk -f "\ t" 'sub (/45/, 90); Print' Benutzer.txt> Ausgabe.txt
$ CAT -Ausgabe.txt
Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt. Die Ausgabe.Die TXT -Datei zeigt den geänderten Inhalt nach Anwendung des Substitution an. Hier hat der Inhalt der 5. Zeile geändert, und "Arnob45" wird in "ARNOB90" geändert.
Beispiel-6: Fügen Sie zu Beginn jeder Zeile einer tabinstrimierten Datei eine Zeichenfolge hinzu
Im Folgenden wird der Befehl 'awk' die Option '-f' verwendet, um den Inhalt der Datei basierend auf der Registerkarte (\ t) zu teilen. OFS hat verwendet, um ein Komma (,) als Feldabscheider in den Ausgang hinzuzufügen. Sub () -Funktion wird verwendet, um die Zeichenfolge '-→' zu Beginn jeder Zeile der Ausgabe hinzuzufügen.
$ CAT -Benutzer.txt
$ awk -f "\ t" 'Ofs = ","; sub (/^/, "---->"); drucken $ 1, $ 2, $ 3' Benutzer.txt
Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt. Jeder Feldwert wird durch Komma (,) getrennt und zu Beginn jeder Zeile wird eine Zeichenfolge hinzugefügt.
Beispiel-7: Ersetzen Sie den Wert einer tab-delimitierten Datei mit der Funktion GSUB ()
GSUB () -Funktion wird im Befehl 'awk' für die globale Substitution verwendet. Alle Zeichenfolgewerte der Datei ersetzen dort, wo das Suchmuster übereinstimmt. Der Hauptunterschied zwischen den Funktionen von Sub () und GSUB () besteht darin, dass Sub () -Funktion die Substitutionsaufgabe nach dem Finden der ersten Übereinstimmung stoppt, und die Funktion GSUB () durchsucht das Muster am Ende der Datei nach Substitution. Der folgende Befehl 'awk' sucht das Wort 'Nila' und 'Mira' global in der Datei und ersetzt alle Vorkommen durch den Text 'ungültiger Name', bei dem das Suchwort übereinstimmt.
$ CAT -Benutzer.txt
$ awk -f '\ t' 'gsub (/nila | mira/, "ungültiger Name"); Drucken 'Benutzer.txt
Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt. Das Wort 'Nila' existiert zweimal in der dritten Zeile der Datei, die durch das Wort "ungültiger Name" in der Ausgabe ersetzt wurde.
Beispiel-8: Drucken Sie den formatierten Inhalt aus einer tab delimierten Datei aus
Der folgende Befehl 'awk' druckt den ersten und zweiten Spalten der Datei mit Formatierung mithilfe von PRINTF aus. Die Ausgabe zeigt den Namen des Benutzers an, indem die E -Mail -Adresse in Klammern eingeschlossen wird.
$ CAT -Benutzer.txt
$ awk -f '\ t' 'printf "%s (%s) \ n", $ 1, $ 2' Benutzer.txt
Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt.
Abschluss
Jede Tabellendatei können leicht analysiert und mit einem anderen Trennzeichen gedruckt werden, indem der Befehl "awk" verwendet wird. Die Möglichkeiten zur Parsen von Registerkartendelimited Dateien und dem Drucken in verschiedenen Formaten haben in diesem Tutorial unter Verwendung mehrerer Beispiele gezeigt. Die Verwendungen von Sub () und GSUB () -Funktionen im Befehl 'awk', um den Inhalt der tab-delimitierten Datei zu ersetzen, werden in diesem Tutorial ebenfalls erläutert. Ich hoffe.