Awk

Come stampare un intervallo di colonne usando il comando 'awk'

Come stampare un intervallo di colonne usando il comando 'awk'
Il comando 'awk' è uno dei tanti comandi che possono essere usati per stampare una serie di colonne da dati tabulari in Linux. Il comando 'awk' può essere utilizzato direttamente dal terminale eseguendo il file di script 'awk'. In questo tutorial, ti mostreremo come stampare un intervallo di colonne da dati tabulari.

Esempio 1: stampa un intervallo di colonne da un output di comando

Il seguente comando stamperà la seconda, la terza e la quarta colonna dall'output del comando, 'ls -l'. Qui, i numeri di colonna sono indicati esplicitamente, ma nel prossimo esempio viene mostrato un comando più efficiente per stampare lo stesso intervallo di colonne.

$ ls -l | awk ' stampa $2, $3, $4 '

Il seguente output è prodotto dal comando precedente.

Esempio 2: stampare l'intervallo di colonne da un file utilizzando a per ciclo continuo

Per seguire questo esempio e gli altri esempi in questo tutorial, crea un file di testo chiamato segni.TXT con il seguente contenuto:

ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58

Il seguente comando 'awk' stamperà le prime tre colonne di segni.TXT. Il per loop viene utilizzato per stampare i valori della colonna e il ciclo include tre passaggi. Il NF variabile indica il numero totale di campi o colonne del file.

$ segni di gatto.TXT
$ awk 'for(i=1;i<=NF-1;i++) printf $i" "; print ""' marks.txt

Il seguente output verrà prodotto eseguendo il comando. L'output mostra lo studente ID e i segni per CSE203 e CSE102.

Esempio 3: stampa l'intervallo di colonne definendo le variabili iniziali e finali

Il seguente comando 'awk' stamperà le prime tre colonne dall'output del comando 'ls -l' inizializzando il di partenza e fine variabili. Qui, il valore di di partenza variabile è 1 e il valore di fine la variabile è 3. Queste variabili vengono ripetute in un ciclo for per stampare i valori delle colonne.

$ ls -l | awk ' BEGIN primo = 1; ultimo = 3
per (i = primo; i < last; i++) printf("%s ", $i) print $last '

Il seguente output apparirà dopo aver eseguito il comando. L'output mostra i primi tre valori di colonna dell'output, 'ls -l'.

Esempio 4: stampa un intervallo di colonne da un file con formattazione

Il seguente comando 'awk' stamperà le prime tre colonne di segni.TXT usando printf e separatore di campo di output (OFS). Qui, il ciclo for include tre passaggi e tre colonne verranno stampate in sequenza dal file. OFS è usato qui per aggiungere spazio tra le colonne. Quando il valore del contatore del ciclo (i) è uguale a fine variabile, quindi viene generata una nuova riga (\n).

$ segni di gatto.TXT
$ awk -v inizio=1 -v fine=3 ' for (i=inizio; i<=end;i++) printf("%s%s",
$i,(i==fine) ? "\n" : OFS) ' segni.TXT

Il seguente output verrà generato dopo aver eseguito i comandi precedenti.

Esempio 5: stampa l'intervallo di colonne da un file utilizzando un'istruzione condizionale

Il seguente comando 'awk' stamperà la prima e l'ultima colonna da un file usando un ciclo for e un'istruzione if. Qui, il ciclo for include quattro passaggi. Il di partenza e fine le variabili vengono utilizzate nello script per omettere la seconda e la terza colonna dal file utilizzando la condizione if. La variabile OFS viene utilizzata per aggiungere spazio tra le colonne e la variabile ORS viene utilizzata per aggiungere una nuova riga (\n) dopo aver stampato l'ultima colonna.

$ segni di gatto.TXT
$ awk -v inizio=2 -v fine=3 ' per (i=1; i<=NF;i++)
if(i>=inizio && i<=end) continue;
else printf("%s%s", $i,(i!=NF) ? OFS : ORS) ' punti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra. L'output mostra la prima e l'ultima colonna di segni.TXT.

Esempio 6: stampa l'intervallo di colonne da un file utilizzando la variabile NF

Il seguente comando 'awk' stamperà la prima e l'ultima colonna del file usando una variabile NF. Non vengono utilizzati cicli o istruzioni condizionali per stampare i valori delle colonne. NF indica il numero di campi. Ci sono quattro colonne in segni.TXT. $(NF-3) definisce la prima colonna e $NF indica l'ultima colonna.

$ segni di gatto.TXT
$ awk 'print $(NF-3)" "$NF' segni.TXT

Il seguente output viene prodotto eseguendo i comandi precedenti. L'output mostra la prima e l'ultima colonna di segni.TXT.

Esempio 7: stampa l'intervallo di colonne da un file utilizzando substr() e index()

La funzione index() restituisce una posizione se il valore del secondo argomento esiste nel valore del primo argomento. La funzione substr() può prendere tre argomenti. Il primo argomento è un valore stringa, il secondo argomento è la posizione iniziale e il terzo argomento è la lunghezza. Il terzo argomento di substr() viene omesso nel comando seguente. Poiché la colonna inizia da $1 nel comando 'awk', la funzione index() restituirà $3 e il comando stamperà da $3 a $4.

$ segni di gatto.TXT
$ awk 'print substr($0,index($0,$3))' segna.TXT

Il seguente output verrà prodotto eseguendo i comandi precedenti.

Esempio 8: stampa in sequenza un intervallo di colonne da un file utilizzando printf

Il seguente comando 'awk' stamperà la prima, la seconda e la terza colonna di segni.txt impostando spazio sufficiente per 10 caratteri.

$ segni di gatto.TXT
$ awk '//printf "%10s %10s %10s\n",$1,$3,$2 '.TXT

Il seguente output verrà prodotto eseguendo i comandi precedenti.

Conclusione

Esistono vari modi per stampare l'intervallo di colonne dall'output del comando o da un file. Questo tutorial mostra come il comando 'awk' può aiutare gli utenti Linux a stampare contenuti da dati tabulari.

Il cursore salta o si sposta in modo casuale durante la digitazione in Windows 10
Se scopri che il cursore del mouse salta o si sposta da solo, automaticamente, in modo casuale durante la digitazione nel laptop o nel computer Window...
Come invertire la direzione di scorrimento del mouse e dei touchpad in Windows 10
Topo e Touchpads non solo rende l'elaborazione semplice, ma anche più efficiente e richiede meno tempo. Non possiamo immaginare una vita senza questi ...
Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...