GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di AWK per selezionare righe con un valore specifico in una colonna specifica

Il file su cui si esegue lo script ha terminazioni di riga DOS. È possibile che sia stato creato su un computer Windows.

Usa dos2unix per convertirlo in un file di testo Unix.

In alternativa, eseguilo attraverso tr :

tr -d '\r' <input.txt >input-unix.txt

Quindi usa input-unix.txt con il tuo altrimenti corretto awk codice.

Per modificare il awk code invece del file di input:

awk -F, '$7 == "-99\r"' input.txt >output.txt

Questo tiene conto del ritorno a capo alla fine della riga.

Oppure,

awk -F, '$7 + 0 == -99' input.txt >output.txt

Questo forza la settima colonna ad essere interpretata come un numero, che "rimuove" il ritorno a capo.

Allo stesso modo,

awk -F, 'int($7) == -99' input.txt >output.txt

rimuoverebbe anche il \r .


awk -F, '{if($7==-99)print $0}'

lo farà...


Linux
  1. Utilizzando Notifica-Invia con Cron?

  2. File di gatto con directory?

  3. Usare l'a capo automatico con Mc?

  4. Usare i colori con printf

  5. Rimuovi un carattere specifico usando awk o sed

Comando AWK in Linux con esempi

Comando awk di Linux con 10 esempi

Usando grep vs awk

Come sottrarre righe (linee) con AWK

Utilizzo di awk per sommare i valori di una colonna, in base ai valori di un'altra colonna

Come estrarre un valore (in una specifica riga e colonna) da un file e assegnarlo a una nuova variabile