2014-11-06 58 views
0

美好的一天,如何不在AWK中獲取擴展變量

我想知道如何不在AWK中獲取擴展變量。

變量傳遞:achi

但是,當我嘗試:

awk -F, -v var1="achi" '$(NF-1)~var1' file 

這是行不通的。它打印所有匹配achi的行。

我會很感激一些見解,正確地做到這一點。

輸入

achi, francia 
nachi, peru 
universidad achi, japon 
achito, suecia 

期望輸出

achi, francia 
+0

''$(NF-1)〜「\ b」var1「\ b」''那些是字符串,你需要引用它們。但是,所有這些都會讓你相信,在你的輸出中會有'universidad achi,japon'。 – 2014-11-06 19:10:26

+0

「擴展變量」究竟是什麼意思? – kdhp 2014-11-06 19:38:33

+0

當我想查找只有單詞'achi'的行時_input_的例子。命令行匹配並打印行:'nachi','universidad achi','achito'。我只想讓命令行打印出只有特定「NF」字的行。 – 2014-11-06 19:41:51

回答

3

你似乎在試圖與模式匹配操作~測試等價。測試等效性的適當運營商是==

awk -F, -v var1="achi" '$(NF-1)==var1' file 

如果你期待,你應該考慮到,你的價值觀是分開用逗號空間帳戶的更多領域,這可以通過使用", "作爲字段分隔符來完成。

awk -F", " -v var1="achi" '$(NF-1)==var1'