Podstawowe pytanie o operator logiczny AND. Próbuję wyodrębnić niektóre pola w moim pliku danych niveles.csv na podstawie wartości kolumn 1 i 2. Chciałbym napisać zdanie awk mówiąc "kiedy pole1 = data i pole2 = obszar, a następnie wydrukuj pola od 3 do 5" .Awk AND operator
Mój plik danych wygląda
01-08-12;1;0;0;0
01-08-12;2;1;1;1
01-08-12;3;0;0;1
................
awk zdanie wewnątrz skryptu bash jest
date=01-08-2012
area=8
awk 'BEGIN {FS=";"} $1 ~ /'$date'/ && $2 ~ /'$area'/ { print $1 " " $2 " " $3 " " $4 " " $5 }' niveles-rams.cs
Ale to właśnie daje pola do trzech przypadków, w których liczba obszar o powierzchni 8 wewnątrz (8,18 i 28), a ja chcę tylko dane z obszaru 8:
01-08-2012 8 0 0 0
01-08-2012 18 2 2 1
01-08-2012 28 2 1 0
Z góry dziękuję za uwagę , z pewnością jest to proste pytanie dla doświadczonych użytkowników.
Dzięki , Nie zdawałem sobie sprawy z różnicy między ~ i == – pacomet
Nie. NIE rób tego! Zobacz http://cfajohnson.com/shell/cus-faq-2.html#Q24, aby uzyskać dostęp do wartości zmiennych powłoki z skryptu awk i zobacz odpowiedź @ Barmar tutaj. –
@EdMorton: Zgadzam się, że to nie jest właściwy sposób dostępu do zmiennych powłoki ... rozwiązanie jest dostarczane, aby rozwiązanie OP działało ... – Guru