Linux:将var传递给awk无法正常工作

时间:2017-08-29 15:10:36

标签: linux awk

我试图使用awk在2个模式之间提取线条,而模式作为变量传递但是它对我不起作用。

file.txt内容:

[Data from server]  
line 1  
line 2  
line 3  

[Data from client]  
line 1  
line 2  
line 3  

没有变量:
命令:awk 'BEGIN{IGNORECASE=1};/data/ && /server/{f=1} /^$/{f=0} f' file.txt

结果:

[Data from server]  
line 1  
line 2  
line 3  

使用变量:

awk -v var=$myVar 'BEGIN{IGNORECASE=1};/data/ && /myVar/{f=1} /^$/{f=0} f' file.txt  

我得到空的结果!

请帮忙

1 个答案:

答案 0 :(得分:1)

使用~运算符时,变量将被解释为正则表达式:

$0 ~ variable

($ 0是整行)

应该是:

awk -v var="$myVar" 'BEGIN{IGNORECASE=1};/data/ && $0 ~ var{f=1} /^$/{f=0} f' file.txt