awkに一致するコンテキストに変数を渡す

awkに一致するコンテキストに変数を渡す

ファイルのawk開始パターンから終了パターンまでのコンテキストを抽出しようとしています。

以下は、再現する単純化された入力の例です。

$ cat file
1
2
3
    
4
5
6

1次のようにスタートモードを通過すると動作します。

$ awk '/1/,/^$/' file

1
2
3

しかし、起動モードで変数を渡すと結果は出ません。

$ awk -v var=1 '/var/,/^$/' file

答え1

変数名はawk内部では拡張されません//。したがって、存在する場合、awkはa、an、anを順番に/var/検索します。あなたが望むもの:var

$  awk -v var=1 '$0~var,/^$/' file
1
2
3

関連情報