Come stampare la prima colonna o l'ultima colonna o entrambi usando 'awk'

Come stampare la prima colonna o l'ultima colonna o entrambi usando 'awk'

Il comando "Awk" di Linux è una potente utilità per diverse operazioni su file di testo come la ricerca, la sostituzione e la stampa. È facile da usare con dati tabulari perché divide automaticamente ogni riga in campi o colonne in base al separatore di campo. Quando si lavora con un file di testo che contiene dati tabulari e si desidera stampare i dati di una colonna particolare, il comando 'awk' è l'opzione migliore. In questo tutorial, ti mostreremo come stampare la prima colonna e/o l'ultima colonna di una riga o un file di testo.

Stampa la prima colonna e/o l'ultima colonna di un comando output

Molti comandi Linux come il comando "LS" generano uscite tabulari. Qui, ti mostreremo come stampare la prima colonna e/o l'ultima colonna dall'output del comando 'ls -l'.

Esempio 1: stampare la prima colonna di un comando output

Il seguente comando "awk" stamperà la prima colonna dall'output del comando "LS -l".

$ ls -l
$ ls -l | awk 'stampa $ 1'

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra.

Esempio 2: stampare l'ultima colonna di un comando output

Il seguente comando "awk" stamperà l'ultima colonna dall'output del comando "LS -l".

$ ls -l
$ ls -l | awk 'print $ nf'

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra.

Esempio 3: stampare la prima e le ultime colonne di un comando output

Il seguente comando "awk" stamperà la prima e le ultime colonne dall'output del comando "ls -l".

$ ls -l
$ ls -l | awk 'stampa $ 1, $ nf'

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra.

Stampa la prima colonna e/o l'ultima colonna di un file di testo

Qui, ti mostreremo come utilizzare il comando 'awk' per stampare la prima colonna e/o l'ultima colonna di un file di testo.

Crea un file di testo

Per seguire questo tutorial, crea un file di testo chiamato clienti.TXT Con i seguenti contenuti. Il file contiene tre tipi di dati dei clienti: nome con ID, e -mail e numero di telefono. Il carattere tab (\ t) viene utilizzato per separare questi valori.

Nome del telefono e -mail
Jonathon Bing - 1001 [email protected] 01967456323
Micheal Jackson - 2006 [email protected] 01756235643
Janifer Lopez - 3029 [email protected] 01822347865
John Abraham - 4235 [email protected] 01590078452
Mir sabbir - 2756 [email protected] 01189523978

Esempio 4: stampare la prima colonna di un file senza utilizzare un separatore di campo

Se non viene utilizzato alcun separatore di campo nel comando "AWK", viene utilizzato uno spazio come separatore di campo predefinito. Il seguente comando "awk" stamperà la prima colonna utilizzando il separatore predefinito.

Clienti da $ Cat.TXT
$ awk 'stampa $ 1' clienti.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. Si noti che l'output mostra solo il nome del cliente perché lo spazio viene applicato come separatore di campo. La soluzione a questo problema è mostrata nel prossimo esempio.

Esempio 5: stampare la prima colonna di un file con un delimitatore

Qui, \ t viene utilizzato come separatore di campo per stampare la prima colonna del file. L'opzione '-f' viene utilizzata per impostare il separatore di campo.

Clienti da $ Cat.TXT
$ awk -f '\ t' 'stampa $ 1 ".TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. Il contenuto del file è diviso in tre colonne in base a \ t. Pertanto, il nome e l'ID del cliente sono stampati come prima colonna. Se si desidera stampare il nome del cliente senza l'ID, continua all'esempio successivo.


Se si desidera stampare il nome del cliente senza l'ID, allora devi usare "-come separatore di campo. Il seguente comando "awk" stamperà il nome del cliente solo come la prima colonna.

Clienti da $ Cat.TXT
$ awk -f ' -' 'stampa $ 1 ".TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output include i nomi completi dei clienti senza i loro ID.

Esempio 6: stampare l'ultima colonna di un file

Il seguente comando "awk" stamperà l'ultima colonna di clienti.TXT. Poiché nel comando non viene utilizzato alcun separatore di campo, lo spazio verrà utilizzato come separatore di campo.

Clienti da $ Cat.TXT
$ awk 'print $ nf' clienti.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'ultima colonna contiene numeri di telefono, come mostrato nell'output.

Esempio 7: stampare la prima e le ultime colonne di un file

Il seguente comando "awk" stamperà la prima e le ultime colonne di clienti.TXT. Qui, la tab (\ t) viene utilizzata come separatore di campo per dividere il contenuto in colonne. Qui, la tab (\ t) viene utilizzata come separatore per l'output.

Clienti da $ Cat.TXT
$ awk -f "\ t" 'print $ 1 "\ t" $ nf' clienti.TXT

La seguente output apparirà dopo aver eseguito i comandi sopra. Il contenuto è diviso in tre colonne di \ t; La prima colonna contiene il nome e l'ID del cliente e la seconda colonna contiene il numero di telefono. Le prime e le ultime colonne vengono stampate usando \ t come separatore.

Conclusione

Il comando 'AWK' può essere applicato in diversi modi per ottenere la prima colonna e/o l'ultima colonna da qualsiasi output del comando o da dati tabulari. È importante notare che nel comando è richiesto un separatore di campo e, se uno non viene fornito, viene utilizzato lo spazio.