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:
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à.