Awk

Come analizzare il file delimitato da tabulazioni usando 'awk'

Come analizzare il file delimitato da tabulazioni usando 'awk'

'tab' è usato come separatore nel file delimitato da tabulazioni. Questo tipo di file di testo viene creato per memorizzare vari tipi di dati di testo in un formato strutturato.  Esistono diversi tipi di comandi in Linux per analizzare questo tipo di file.  Il comando 'awk' è uno dei modi per analizzare il file delimitato da tabulazioni in modi diversi. Gli usi del comando 'awk' per leggere il file delimitato da tabulazioni sono mostrati in questo tutorial.

Crea un file delimitato da tabulazioni:

Crea un file di testo chiamato utenti.TXT con il seguente contenuto per testare i comandi di questo tutorial. Questo file contiene il nome utente, l'e-mail, il nome utente e la password.

utenti.TXT

Nome                Email                       Nome utente         Password
Md. Robin         [email protected]               robin89               563425
Nila Hasan         [email protected]                nila78                245667
Mirza Abbas        [email protected]               mirza23               534788
Aornob Hasan        [email protected]         arnob45               778473
Nuhas Ahsan        [email protected]               nuhas34               563452

Esempio 1: stampa la seconda colonna di un file delimitato da tabulazioni utilizzando l'opzione -F

Il seguente comando 'sed' stamperà la seconda colonna di un file di testo delimitato da tabulazioni. qui, il '-F' l'opzione viene utilizzata per definire il separatore di campo del file.

$ utenti di gatti.TXT
$ awk -F '\t' 'print $2' utenti.TXT

Il seguente output apparirà dopo aver eseguito i comandi. La seconda colonna del file contiene gli indirizzi e-mail dell'utente, che vengono visualizzati come output.

Esempio 2: stampa la prima colonna di un file delimitato da tabulazioni utilizzando la variabile FS

Il seguente comando 'sed' stamperà la prima colonna di un file di testo delimitato da tabulazioni. Qui, FS ( Field Separator) viene utilizzata per definire il separatore di campo del file.

$ utenti di gatti.TXT
$ awk ' print $1 ' FS='\t' utenti.TXT

Il seguente output apparirà dopo aver eseguito i comandi. La prima colonna del file contiene i nomi degli utenti, che vengono visualizzati come output.

Esempio 3: stampa la terza colonna di un file delimitato da tabulazioni con formattazione

Il seguente comando "sed" stamperà la terza colonna del file di testo delimitato da tabulazioni con la formattazione utilizzando il FS variabile e printf. qui, il FS variabile viene utilizzata per definire il separatore di campo del file.

$ utenti di gatti.TXT
$ awk 'BEGINFS="\t" printf "%10s\n", $3' utenti.TXT

Il seguente output apparirà dopo aver eseguito i comandi. La terza colonna del file contiene il nome utente che è stato stampato qui.

Esempio-4: stampa la terza e la quarta colonna del file delimitato da tabulazioni utilizzando OFS

OFS (Output Field Separator) viene utilizzato per aggiungere un separatore di campo nell'output. Il seguente comando "awk" dividerà il contenuto del file in base al separatore tab(\t) e stamperà la 3a e la 4a colonna utilizzando tab(\t) come separatore.

$ utenti di gatti.TXT
$ awk -F "\t" 'OFS="\t" stampa $3, $4 > ("output.txt")' utenti.TXT
$ uscita gatto.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra. La 3a e la 4a colonna contengono il nome utente e la password, che sono stati stampati qui.

Esempio-5: sostituire il contenuto particolare del file delimitato da tabulazioni

la funzione sub() è usata in 'awk per comandare per la sostituzione. Il seguente comando 'awk' cercherà il numero 45 e lo sostituirà con il numero 90 se il numero di ricerca esiste nel file. Dopo la sostituzione, il contenuto del file verrà memorizzato nell'output.file txt.

$ utenti di gatti.TXT
$ awk  -F "\t"'sub(/45/,90);print' utenti.txt > output.TXT
$ uscita gatto.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra. Il risultato.txt mostra il contenuto modificato dopo aver applicato la sostituzione. Qui, il contenuto della quinta riga è stato modificato e "arnob45" è stato modificato in "arnob90".

Esempio 6: aggiungere una stringa all'inizio di ogni riga di un file delimitato da tabulazioni

Di seguito, il comando 'awk', l'opzione '-F' viene utilizzata per dividere il contenuto del file in base al tab(\t). OFS ha usato per aggiungere una virgola (,) come separatore di campo nell'output. sub() viene utilizzata per aggiungere la stringa '-→' all'inizio di ogni riga dell'output.

$ utenti di gatti.TXT
$ awk -F "\t" 'OFS=",";sub(/^/, "---->");print $1,$2,$3' utenti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra. Ogni valore di campo è separato da una virgola(,) e viene aggiunta una stringa all'inizio di ogni riga.

Esempio-7: sostituire il valore di un file delimitato da tabulazioni utilizzando la funzione gsub()

La funzione gsub() viene utilizzata nel comando 'awk' per la sostituzione globale. Tutti i valori stringa del file verranno sostituiti dove corrisponde il modello di ricerca. La differenza principale tra le funzioni sub() e gsub() è che la funzione sub() interrompe l'attività di sostituzione dopo aver trovato la prima corrispondenza e la funzione gsub() cerca il modello alla fine del file per la sostituzione. Il seguente comando 'awk' cercherà la parola 'nila' e 'Mira' globalmente nel file e sostituirà tutte le occorrenze con il testo, 'Nome non valido', dove la parola cercata corrisponde.

$ utenti di gatti.TXT
$ awk  -F '\t' 'gsub(/nila|Mira/, "Nome non valido"); print' utenti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra. La parola "nila" esiste due volte nella terza riga del file che è stata sostituita dalla parola "Nome non valido" nell'output.

Esempio-8: stampare il contenuto formattato da un file delimitato da tabulazioni

Il seguente comando 'awk' stamperà la prima e la seconda colonna del file con la formattazione usando printf. L'output mostrerà il nome dell'utente racchiudendo l'indirizzo email tra parentesi.

$ utenti di gatti.TXT
$ awk -F '\t' 'printf "%s(%s)\n", $1,$2' utenti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra.

Conclusione

Qualsiasi file delimitato da tabulazioni può essere facilmente analizzato e stampato con un altro delimitatore utilizzando il comando 'awk'. I modi per analizzare i file delimitati da tabulazioni e stampare in diversi formati sono stati mostrati in questo tutorial utilizzando più esempi. In questo tutorial sono spiegati anche gli usi delle funzioni sub() e gsub() nel comando 'awk' per sostituire il contenuto del file delimitato da tabulazioni. Spero che questo tutorial aiuti i lettori ad analizzare facilmente il file delimitato da tabulazioni dopo aver praticato correttamente gli esempi di questo tutorial.

Porte open source di motori di gioco commerciali
Ricreazioni del motore di gioco gratuite, open source e multipiattaforma possono essere utilizzate per riprodurre titoli di giochi vecchi e abbastanza...
I migliori giochi da riga di comando per Linux
La riga di comando non è solo il tuo più grande alleato quando usi Linux, ma può anche essere una fonte di intrattenimento perché puoi usarla per gioc...
Le migliori app di mappatura del gamepad per Linux
Se ti piace giocare su Linux con un gamepad invece di un tipico sistema di input di tastiera e mouse, ci sono alcune app utili per te. Molti giochi pe...