我试图使用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
我得到空的结果!
请帮忙
答案 0 :(得分:1)
使用~
运算符时,变量将被解释为正则表达式:
$0 ~ variable
($ 0是整行)
应该是:
awk -v var="$myVar" 'BEGIN{IGNORECASE=1};/data/ && $0 ~ var{f=1} /^$/{f=0} f' file.txt