0
我有結構化的這樣一個逗號分隔的.txt文件:的Linux shell腳本:從標準輸入傳遞變量的awk
ABC,NAME1,LASTNAME1
DEF,NAME2,LASTNAME2
GHI,NAME3,LASTNAME3
在運行時:
$ ./script.sh file.txt
#!/bin/bash
awk -F, '/NAME1/{print $3}' "$1"
我得到我想要的輸出:
LASTNAME1
當試圖通過將變量傳遞給awk
來代替NAME1
時:
$ ./script.sh file.txt NAME1
#!/bin/bash
awk -v n="$2" -F, '/$n/{print $3'} "$1"
我根本沒有得到任何輸出。我檢查了一下,在bash中輸入的$2
確實是NAME1
。我錯過了什麼?在awk中
啊,我明白了!所以,這個awk命令意味着:在我的研究中,在第1列($ 0)中搜索並且如果pattern(n)匹配(〜),打印...「?我還發現,$ 0意味着第一行?這是正確的 – Shushiro
@ Shushiro'$ 0'表示整個當前行。 – janos