Bash awk和转义字符

Bash awk和转义字符,bash,awk,Bash,Awk,我有一只正在工作的鹬: grep 0rang3 /tmp/wifiSpot.txt | awk '/0rang3/{flag=1} flag; /Pairwise/{flag=0}' /tmp/wifiSpot.txt 现在,我想要一个变量来代替“0rang3”: read -rp 'what essid ?' ESSID 如果它是一个像‘Orange Airbox-B59C’这样的多词essid,我需要将它包装成“${essid}”而不是“$essid” 当我尝试 grep "${ES

我有一只正在工作的鹬:

grep 0rang3 /tmp/wifiSpot.txt | awk '/0rang3/{flag=1} flag; /Pairwise/{flag=0}' /tmp/wifiSpot.txt 
现在,我想要一个变量来代替“0rang3”:

read -rp 'what essid ?' ESSID 
如果它是一个像‘Orange Airbox-B59C’这样的多词essid,我需要将它包装成“${essid}”而不是“$essid”

当我尝试

grep "${ESSID}" /tmp/wifiSpot.txt | awk '/\"${ESSID}\"/{flag=1} flag; /Pairwise/{flag=0}' /tmp/wifiSpot.txt
grep“${ESSID}”->可以工作,但是

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

我试过:

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

我找不到办法让它工作


有什么想法吗,伙计们?thanx提前。

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

您需要的是:

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

看看awk的选项
-v
.wrt
grep 0rang3/tmp/wifiSpot.txt | awk'/0rang3/
-您希望grep输出中的哪些行与awk中的相同regexp不匹配?如果您需要帮助,您的问题应该包括简洁、可测试的示例输入和预期输出。