關於AND邏輯運算符的一個基本問題。我試圖根據列1和列2的值在數據文件niveles.csv中提取一些字段。我想寫一個awk語句,說「當field1 = date和field2 = area,然後打印字段3到5」 。Awk AND運算符
我的數據文件看起來像
01-08-12;1;0;0;0
01-08-12;2;1;1;1
01-08-12;3;0;0;1
................
bash腳本中的awk句話
date=01-08-2012
area=8
awk 'BEGIN {FS=";"} $1 ~ /'$date'/ && $2 ~ /'$area'/ { print $1 " " $2 " " $3 " " $4 " " $5 }' niveles-rams.cs
但這只是給出了三種情況下的區域編號有8場裏面(8,18和28),而我只想要區域8的數據
01-08-2012 8 0 0 0
01-08-2012 18 2 2 1
01-08-2012 28 2 1 0
在此先感謝您的關注,對於有經驗的用戶來說,這是一個簡單的問題。
謝謝,我不知道〜和== – pacomet
之間的區別。不要那樣做!有關如何從awk腳本訪問shell變量的值,請參閱http://cfajohnson.com/shell/cus-faq-2.html#Q24,並參閱@ Barmar的答案。 –
@EdMorton:我同意這不是訪問shell變量的正確方法......提供解決方案以使OP的解決方案工作... – Guru