Awk
將變數傳遞給上下文匹配 awk
我正在嘗試從具有
awk
從開始模式到結束模式的文件中提取上下文。這是用於重現的簡化範例輸入:
$ cat file 1 2 3 4 5 6
1
當我按如下方式傳遞啟動模式時,它會起作用:$ awk '/1/,/^$/' file 1 2 3
但是當我將變數作為起始模式傳遞時,我沒有得到任何結果:
$ awk -v var=1 '/var/,/^$/' file
變數名不會
//
在 awk 內部展開。因此,當您擁有 時/var/
,awk 將搜尋 av
後跟 ana
,然後再搜尋 anr
。你想要的是:$ awk -v var=1 '$0~var,/^$/' file 1 2 3