我正在尝试从文件中提取awk
从开始模式到结束模式的上下文。
以下是要重现的简化示例输入:
$ cat file
1
2
3
4
5
6
1
当我按如下方式传递启动模式时,它会起作用:
$ awk '/1/,/^$/' file
1
2
3
但是当我传递一个变量作为启动模式时,我没有得到结果:
$ awk -v var=1 '/var/,/^$/' file
答案1
变量名在 awk 中不会在内部扩展//
。因此,当您有时/var/
,awk 将搜索 a ,v
然后搜索 an a
,然后搜索 an r
。你想要的是:
$ awk -v var=1 '$0~var,/^$/' file
1
2
3