2013-01-25 95 views
3
awk -F"," -v var=$test '$1 ~ /^var$/{print}' alpha.txt 

我試着用我的實際變量輸入硬編碼我的var,我發現這個代碼的工作原理。但是,當我嘗試例如/^ppl$/來搜索蘋果的部分匹配時,它不顯示。有人可以給我一些關於如何將我的變量分析到命令中的指導嗎?awk部分匹配未被打印

+0

'/^ppl $ /'不會給出蘋果的部分匹配,因爲您要求該行只包含'ppl'; '^'表示行的開始,'$'表示結束。 –

+0

非常感謝。我是否可以知道是否希望獲得例如蘋果日的部分匹配,我如何修改代碼來完成它? – user1823986

+0

只要使用'ppl';這不會限制匹配可能發生的字符串中的哪個位置。 –

回答

0
awk -F"," '$1 ~ /^'"$test"'$/{print}' alpha.txt 
+0

謝謝你的幫助 – user1823986

2

試試這個:

awk -F"," -v var=$test '$1 ~ "^"var"$"' alpha.txt 
+0

謝謝。請問我是否希望在場地中找到與空白區域相匹配的區域,我該怎麼辦? – user1823986

+0

@ user1823986你的意思是你的'$ test(var)'是'「」'?如果你想匹配任何**空間,這意味着它可能在開始,結束或中間的領域。只是'$ 1〜var' – Kent

+0

哦。非常感謝。我想我把它和我的閱讀混在一起。 – user1823986

0

如果你在開始末固定的比賽中,只要使用==

awk -F"," -v var=$test '$1 == var' alpha.txt 

除非$test包含一個正則表達式,在這種情況下@Kent有正確的答案。