awkのフラグ付き出力にテキストを追加する

awkのフラグ付き出力にテキストを追加する

ファイル名を受け取る関数があります。次に、コマンドを実行し、出力を 2 つのパターン間でフィルタリング (排他的) し、コマンドのファイル名出力とともにコンマ区切りの値を出力します。

関数と期待される出力は次のとおりです。

get_cons_obs() {
    local line="${1}"
    "command" -i "${line}" 2>&1 \
        | awk '/^ERROR$/{print "ERROR"} /^START$/{flag=1;next} /^END$/{flag=0} flag' \
        | xargs printf "${line},%s\n"
}
file01,thing01
file01,thing02
file01,thing03
.
.
.

awkコマンドとコマンドを組み合わせることは可能ですかxargs printf? 変数に「フラグ付き」行を追加できないようです$line

答え1

シェル変数をawkに渡して、ゼロ以外のline場合に出力できるようにしたいようです。flag

元。

awk -v line="$line" '. . . flag {printf "%s,%s\n", line, $0}'

参照

答え2

以下のコマンドを試してみたところ、問題なく動作しました

awk '/pattern1/,/pattern2/{print $0","FILENAME}' filename

関連情報