Una domanda di base sull'operatore AND logico. Sto cercando di estrarre alcuni campi nel mio file di dati niveles.csv in base ai valori delle colonne 1 e 2. Mi piacerebbe scrivere una frase awk che dice "quando field1 = date e field2 = area quindi stampa i campi da 3 a 5" .Awk AND operator
Il mio file di dati sembra
01-08-12;1;0;0;0
01-08-12;2;1;1;1
01-08-12;3;0;0;1
................
frase awk all'interno di uno script bash è
date=01-08-2012
area=8
awk 'BEGIN {FS=";"} $1 ~ /'$date'/ && $2 ~ /'$area'/ { print $1 " " $2 " " $3 " " $4 " " $5 }' niveles-rams.cs
Ma questo dà solo i campi per i tre casi in cui il numero zona ha un 8 interno (8,18 e 28) mentre desidero solo i dati dell'area 8
01-08-2012 8 0 0 0
01-08-2012 18 2 2 1
01-08-2012 28 2 1 0
Grazie in anticipo per la vostra attenzione , certo è una domanda semplice per utenti esperti.
Grazie , Non ero a conoscenza della differenza tra ~ e == – pacomet
No. NON farlo! Vedi http://cfajohnson.com/shell/cus-faq-2.html#Q24 per come accedere al valore delle variabili di shell forma uno script awk e vedi la risposta di @ Barmar qui. –
@EdMorton: Sono d'accordo che questo non è il modo giusto per accedere alle variabili della shell ... la soluzione è fornita per far funzionare la soluzione dell'OP ... – Guru