awk和转义字符

时间:2018-12-17 14:27:26

标签: bash awk

我有一个工作片段:

grep 0rang3 /tmp/wifiSpot.txt | awk '/0rang3/{flag=1} flag; /Pairwise/{flag=0}' /tmp/wifiSpot.txt 

现在代替“ 0rang3”,我希望读取一个变量:

read -rp 'what essid ?' ESSID 

如果它是多个单词essid,例如“ Orange Airbox-B59C”,则需要像“ $ {ESSID}”那样包装它,而不是“ $ ESSID”

当我尝试

grep "${ESSID}" /tmp/wifiSpot.txt | awk '/\"${ESSID}\"/{flag=1} flag; /Pairwise/{flag=0}' /tmp/wifiSpot.txt

grep“ $ {ESSID}”->可以,但是

awk'/ \“ $ {ESSID} \” / ...->不起作用

我尝试过:

'/\"\$\{ESSID\}\"/

'/ $ ESSID /

我找不到使它工作的方法

有想法的人吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

grep部分在您的管道链中毫无意义,在awk命令中,您没有读取传递到管道的任何内容。您可以删除它。

您需要的是:

awk -v pat="$ESSID" '$0~pat{flag=1}flag; /Pairwise/{flag=0}' yourFile