Come usare più delimitatori in AWK

Come usare più delimitatori in AWK
AWK è un linguaggio di programmazione potente, che funziona nella riga di comando per trovare vari schemi in output e file di comando.

Possiamo considerare AWK un miglioramento rispetto al SED poiché offre più funzionalità, tra cui array, variabili, loop e buone espressioni vecchie e regolari.

In questo tutorial, discuteremo rapidamente di come puoi usare più delimitatori in un comando AWK. Prima di procedere, si prega di notare che questo tutorial non è una guida per principianti per AWK, né l'ho intenzionato come tale.

Fare riferimento alla seguente risorsa se hai bisogno di una guida per principianti per AWK.

https: // linuxhint.com/use_awk_linux/

Cosa sono i delimitatori?

Sono sicuro che, dal momento che ti stai prendendo il tempo di leggere questo articolo, hai familiarità con il concetto di delimitatori. Ma non fa male a ricapitolare, quindi facciamolo ora:

In poche parole, i delimitatori sono una sequenza di caratteri usati per separare i valori di testo della stringa. Esistono vari tipi comuni di delimitatori che includono:

Nome Simbolo
Virgola ,
Colon :
Punto e virgola ;
Periodo .
Tubo |
Retroscena \
Barra /
Parentesi ()
Parentesi graffe
Parentesi quadre [
Spazio

Awk Regex Field Separator

Il separatore di campo AWK (FS) viene utilizzato per specificare e controllare come AWK divide un record in vari campi. Inoltre, può accettare un singolo carattere di un'espressione regolare. Una volta che si specifica un'espressione regolare come valore per FS, AWK scansiona i valori di input per la sequenza di caratteri impostati nell'espressione regolare.

Implementeremo la funzionalità di AWK per accettare valori di espressione regolari nel separatore di campo per collegare più delimitatori.

Usa più delimitatori

Per illustrare come separare usando più delimitatori in AWK, userò un semplice esempio per mostrarti come usare questa funzionalità.

Supponiamo di avere un file con i dati come segue:

/org/gnone/desktop/interfaccia: stabilito: apr17 16.59.09 | org.gnoma.terminale.desktop [1099]

Dal file sopra, desideriamo ottenere l'output simile a quello mostrato di seguito:

org/gnome/desktop/interfaccia stabilita il 17 aprile 16:59.09 Org.gnoma.terminale.desktop [1099]

Per separare il file utilizzando i vari delimitatori in questo caso, uno spazio, uno spazio e un tubo possono usare un comando come mostrato di seguito:

awk -f '[: |]' 'stampa $ 1, $ 2, $ 3, $ 4, $ 5, $ 6 utente.tronco d'albero

Il comando sopra emette le informazioni come mostrato di seguito:

Come puoi vedere, puoi combinare più di un delimitatore nel separatore di campo AWK per ottenere informazioni specifiche.

Conclusione

In questa rapida guida, abbiamo discusso usando AWK per separare più delimitatori in un file di input.

Per ottenere ulteriori informazioni su come espandere la funzionalità di AWK FS, considerare le seguenti risorse:

https: // www.gnu.org/software/gawk/manuale/html_node/regexp-field-splitting.html

https: // www.gnu.org/software/gawk/manuale/html_node/separatori di campo.html