Awk

10 fantastici esempi di comandi awk

10 fantastici esempi di comandi awk
Il comando Awk è un potente strumento per elaborare i dati. Ottiene i dati di input, li manipola e fornisce risultati nell'output standard. Varie operazioni possono essere eseguite su righe e colonne di un file.

Conoscere gli elementi essenziali del comando "awk" è molto importante quando si tratta di elaborare i dati in modo efficiente e questo post copre le caratteristiche chiave del comando "awk". Controlliamo prima la sintassi:

$ awk [opzioni] [file]

Alcune delle opzioni comunemente utilizzate sono riportate nella tabella seguente:

Opzione Descrizione
-F Per specificare un separatore di file
-f Specificare il file che contiene lo script "awk"
-v Per assegnare la variabile

Diamo un'occhiata ad alcuni esempi sull'uso del comando "awk", e per dimostrazione ho creato un file di testo con il nome di testFile.TXT:

1. Come stampare una colonna di un file con il comando awk?

Il comando "awk" può essere utilizzato per ottenere una colonna specifica del file di testo. Per stampare il contenuto del file utilizzare:

$cat testFile.TXT

Ora, per stampare la seconda colonna del file, usa:

$awk 'print $2' testFile.TXT

Per stampare più di un campo utilizzare il comando:

$awk 'print $1,$2,$3' testFile.TXT

Se non usi la virgola "", l'output sarà senza spazi:

$awk 'print $1$2$3' testFile.TXT

2. Come usare l'espressione regolare con il comando awk:

Per abbinare le stringhe o qualsiasi espressione, usiamo le barre "//", ad esempio, se vuoi stampare i nomi delle persone che stanno studiando "Storia", usa:

$awk '/Cronologia/ print $2' testFile.TXT

L'output mostra chiaramente che solo "Sam" e "Tommy" stanno studiando il corso "Storia".

3. Come usare l'espressione relazionale con il comando "awk":

Per abbinare il contenuto di un campo specifico, è possibile utilizzare un'espressione relazionale. Per abbinare qualsiasi stringa o espressione a un campo, indicare il campo e utilizzare l'operatore di confronto "~" con il modello come presentato nel seguente comando:

$awk '$3 ~/is/ print $2' testFile.TXT

L'output sopra che mostra ogni campo nella colonna 2 contro ogni campo che contiene "è" nella colonna 3.

E per ottenere l'output opposto del comando precedente, usa il "! ~” operatore:

$awk '$3! ~/is/ print $2' testFile.TXT

Per confronto, possiamo anche usare operatori come maggiore di ">" e minore di "<” and equal “=” as well:

$awk '$4>70 print $2' testFile.TXT

L'output ha stampato i nomi delle persone che hanno ottenuto voti superiori a 70.

4. Come usare il modello di intervallo con il comando awk:

Un intervallo può essere utilizzato anche per la ricerca; usa semplicemente la virgola "", per separare l'intervallo come presentato nel comando indicato di seguito:

$awk '/Joel/, /Marlene/ print $3' testFile.TXT

L'output mostra i soggetti della gamma da "Joel" a "Marlene" dalla colonna 2. Possiamo usare il doppio segno di uguale “==” per definire un intervallo; vedere l'esempio qui sotto:

$awk '$4 == 80, $4 == 90 stampa $0' testFile.TXT

L'output visualizza i nomi delle persone dalla colonna 2 per l'intervallo di segni "70 a 80" dalla colonna 4.

5. Come combinare il modello usando l'operatore logico:

L'uso di operatori logici come OR "||", AND "&&" consente di combinare modelli per la ricerca. Usa il seguente comando

$awk '$4>80 && $6>0.4 print $2' testFile.TXT

Il comando sopra stampa i nomi delle persone contro il quarto campo più significativo di 80 e il sesto campo maggiore di 0.4. E solo due record soddisfano la condizione.

6. Le espressioni speciali del comando awk:

Ci sono due espressioni speciali, "INIZIO" e "FINE”:

BEGIN: per eseguire un'azione prima che i dati vengano elaborati

FINE: per eseguire un'azione dopo che i dati sono stati elaborati

$awk 'BEGIN print “L'elaborazione è iniziata”; stampa $2; END print “L'elaborazione è terminata”' testFile.TXT

7. L'utile variabile integrata del comando awk:

Il comando awk ha varie variabili che aiutano nell'elaborazione dei dati:

Variabile Descrizione
NF Fornisce il numero di campi nei dati
NR Dà il numero del record corrente
NOME DEL FILE Visualizza il nome del file attualmente in elaborazione
FS e OFS Separatore di campo e separatore di campo di output
RS e ORS Separa il record e il separatore di record di output

Per esempio:

$awk 'ENDprint “Il nome del file è ” FILENAME “ha” NF “fields and” NR “records”' testFile.TXT

Usiamo "END", ma se usi "BEGIN", l'output darebbe 0 campi e 0 record.

8. Come modificare il separatore di record:

Il separatore predefinito nel record è solitamente lo spazio; se c'è una virgola "", o un punto "."come separatore di campo, quindi usa l'opzione "FS" insieme al separatore.

Abbiamo un altro file in cui i campi dati sono separati da una virgola due punti “:”:

$cat testFile2.TXT
$awk 'BEGIN FS= “:” print $2' testFile2.TXT

Poiché il separatore del file è i due punti, ma il comando "awk" è utile anche per i file come questo, usa semplicemente l'opzione "FS".

Il "-F" può essere utilizzato anche:

$awk -F “:” 'print $2' testFile2.TXT

Il separatore di record predefinito è "newline" e per impostare il separatore di record su ":", utilizzare:

$awk 'BEGIN RS = “:”print $1' testFile2.TXT

9. Azioni imbarazzanti:

Le azioni Awk sono piccoli programmi racchiusi tra parentesi "" e hanno più di un'istruzione separate da punto e virgola";".

L'istruzione più utilizzata con il comando "awk" è l'istruzione "print". Ad esempio, per stampare un testo con ogni record, usa la stringa di testo tra virgolette:

$awk '"È un campo", $2' file di test.TXT

Eseguiamo una semplice operazione di somma usando awk:

$awk 'sum += $4 END printf “%d\n”, sum' testFile.TXT

10. Creazione di un programma awk:

Cominciamo con la programmazione "awk", la programmazione data di seguito sta semplicemente facendo una moltiplicazione:

INIZIO
io=2
mentre (j<4)

print “La moltiplicazione di 2 con” j “ è ” i*j;
j++

Salva il programma con il nome di "mioCodice.awk” e per eseguirlo, apri il terminale e digita:

$awk -f mioCodice.awk

Conclusione:

Il comando "awk" è un comodo comando per elaborare, scansionare i dati dei file di testo, come separare un particolare campo di un file; usiamo il comando "awk". Semplifica la ricerca di qualsiasi cosa in qualsiasi forma o modello dai file di testo. In questa guida, comprendiamo le basi del comando "awk" e il suo utilizzo. Il comando "awk" convalida i dati, genera report e persino analizza i file. L'uso di semplici comandi "awk" consente inoltre agli utenti di scrivere piccoli programmi per elaborare i dati in modo più efficiente.

Vulkan per utenti Linux
Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al...
OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...