awkにシェル変数を渡す

awkにシェル変数を渡す

私はこの質問が何度も提起され、多くの答えがよく書かれていることを知っていますが、小さな仕事で何かを見逃しています。テキストファイルの一部をインポートするには、awkにシェル変数(この場合はパラメータ)を渡してみてください。

cat ~/work/junk.txt 

[Section1]
innerline1
innerline2
innerline3

[Section2]
innerline4
innerline5
innerline6

awkで一致するパターンで渡された提供された引数($ 1)を使用するスクリプトを作成しようとしています。

#!/bin/bash

echo pattern is $1

# record separator (RS) is the next blank line
awk -v var="$1" {print '/var/'} RS= ~/work/junk.txt

$ 1が「Section1」として指定されたパラメーターの場合、以下の出力が予想されます。

[Section1]
innerline1
innerline2
innerline3

近いと思うがまだまだ遠い。

どんなアイデアもありがとうございます。

ベストアンサー1

#!/bin/bash

echo "Pattern is ${1}"

awk -F'=' -v section="[$1]" -v f=0 '$0==section {f=1}  $0=="" {f=0} f==1 {print}' input

おすすめ記事