我試圖匹配一個shell變量與逗號分隔的第二列。 所以我給自己定$ INOW到LS和命令看起來像這樣如何匹配awk中的shell變量?
awk -F"," '$2 == $INOW {print "yeah it's there"}' commands.csv
我試圖把大約$ INOW報價。沒有不同。我如何與shell變量匹配?
我試圖匹配一個shell變量與逗號分隔的第二列。 所以我給自己定$ INOW到LS和命令看起來像這樣如何匹配awk中的shell變量?
awk -F"," '$2 == $INOW {print "yeah it's there"}' commands.csv
我試圖把大約$ INOW報價。沒有不同。我如何與shell變量匹配?
你不能直接在awk
中使用shell變量。相反,你可以創建一個使用-v
例
$ a_variable=hello
$ awk -v var="$a_variable" "{print var}"
hello
所以你的情況,你可以編寫一個awk變量,
$ awk -F"," -v inow="$INOW" '$2 == inow {print "yeah its there"}' commands.csv
awk -F"," '{if($2 == '$INOW') {print "yeah its there"}else{print "nope"}}' commands.csv
$ INOW似乎沒有被評估。因爲else部分正在評估,但if部分不是。 $ INOW是真的。 –
我明白了,我嘗試過,但它由於某種原因不工作。它顯示了不完整的命令。即在我發出你的命令之後,對我而言,這就出現了。 –
$ awk -F「,」-v inow =「$ INOW」'$ 2 == inow {print「yeah it's there」}'commands.csv then in the next lines > > –
@HrishikeshBarman您有一個語法錯誤。在你寫的命令中有額外的''''。要麼刪除它或逃脫 – nu11p01n73R