Esempi di utilizzo degli script Gawk

Esempi di utilizzo degli script Gawk
Un modo di lavorare con i file in Linux è l'utilizzo di un linguaggio di scripting per gestire l'automazione delle attività ripetute. Un esempio di un buon linguaggio di scripting è Awk Il che semplifica l'estrazione dei dati e il lavoro con i modelli. L'implementazione della GNU del linguaggio di scripting AWK è Gawk. Se devi ancora venire a patti con il suo utilizzo, sei fortunato. Questo post presenta i diversi esempi dell'uso di Gawk in Linux e alla fine di questa guida, avrai una solida comprensione di lavorare con esso.

Iniziare con Gawk

Se si utilizza le versioni più recenti Linux, Gawk dovrebbe essere installato per impostazione predefinita. Puoi verificare controllando la sua versione.

Esistono diversi modi per usare Gawk. Le funzionalità comuni sono le seguenti:

  • Linee di output del formato
  • Trasformare i file di dati
  • File di scansione per riga
  • Linea di ingresso di divisione in campi
  • Produrre rapporti formattati
  • Ordinamento dei dati

La sintassi di base per Gawk è:

$ gawk [opzioni in stile posix / gnu] -f programma_file [ -]
$ Gawk [Posix / GNU Style Options] [ -] File "Programma" ..

Per usare Gawk, usi il -F Opzione per specificare un file di script o specificare direttamente lo script sulla riga di comando.

Ci sono tre opzioni importanti da notare quando si utilizza Gawk:

1. -F file, -file = file: Utilizzato quando si desidera utilizzare Gawk e leggere i comandi da un file. Il file è lo script.

2. -v var = val, -assign = var = val: Utilizzato quando è necessario assegnare un valore a una variabile prima di eseguire uno script.

3. -F fs, -field -separator = fs: Il valore della variabile predefinita FS viene utilizzato come separatore per il campo di input.

Variabili incorporate

Gawk offre variabili integrate come:

FS: Utilizzato quando si dividono i file e contiene il carattere separatore di campo.

Rs: Contiene il separatore di caratteri corrente.

OFS: Contiene il separatore di campo di output che separa i campi che AWK.

NF: Il numero di campi per il record di input viene memorizzato nella NF.

Ors: Contiene il separatore di campo di output che separa le linee di uscita stampate da AWK.

NR: Contiene il numero totale di linee di input.

Nell'esempio precedente, utilizziamo * come separatore per le righe di input nel file.

Esempio di utilizzo di Gawk

1. -F

Per ordinare un file di testo e stampare i primi tre campi separati dal colon, utilizzare il comando seguente. Nota che utilizziamo il passwd Come il nostro file qui:

$ gawk -f: 'stampa $ 1; stampare $ 2; Stampa $ 3 ' /etc /passwd

Qui, il nostro separatore è un colon completo. Dal momento che vogliamo i primi tre campi, li specifichi come mostrato nell'esempio precedente. È possibile modificarlo e utilizzare un separatore diverso e un numero diverso di campi.

2. -F

Per specificare l'origine del programma AWK da un file, utilizzare il flag seguito dal file:

$ gawk -f: -f file1.txt /etc /passwd

3. Stampa contenuto di un file

L'uso di gawk su un file stampa tutte le righe di dati nel file.

4. Lavorare con i modelli

Puoi anche usare Gawk e stampare solo le linee corrispondenti a un determinato motivo. Ad esempio, per stampare una riga contenente una parola particolare, nel nostro caso la parola è Kim, Il comando sarebbe:

$ gawk '/ kim/ print' File-nome

Qui, il modello può anche essere un personaggio. Ad esempio, per stampare tutte le righe che contengono un colon, il comando sarebbe come nella seguente immagine:

È inoltre possibile specificare le righe specifiche da stampare. Ad esempio, per stampare le linee contenenti caratteri specifici come maggiori di 6, la sintassi è:

$ gawk 'lunghezza ($ 0)> 6' nome file

5. Lince di divisione in campi

Gawk, per impostazione predefinita, stampa ogni campo quando si stampa le linee in un file. Tuttavia, è possibile specificare quale campo stampare. Il primo campo viene memorizzato nel $ 1 e l'intera linea è rappresentata come $ 0. Per impostazione predefinita, l'intera riga viene stampata a meno che non si specifichi per separare i campi in base allo spazio bianco.

Ad esempio, per separare le righe e stampare solo il secondo campo di ogni riga, il comando sarebbe:

$ gawk 'stampa $ 2' file

Per aggiungere i numeri di riga, aggiungi il Nr variabile.

Il nuovo comando sarebbe:

$ gawk 'print nr, $ 2' file

6. Ottieni il numero di righe

Potrebbe essere necessario ottenere il numero totale di righe per file di grandi dimensioni e puoi ottenerlo utilizzando la seguente sintassi:

$ gawk 'end print nr' file name

Conclusione

Sapere come usare Gawk in Linux è divertente e utile, soprattutto quando si tratta di dati di testo. È possibile utilizzare i diversi modelli per estrarre e manipolare le linee di dati. Spero che gli esempi trattati in questo articolo ti diano un vantaggio e apri gli occhi usando Gawk per diverse attività.