AWKにパラメータを渡す

AWKにパラメータを渡す

うまく動作する次のAWKコマンドがあります。

awk -v RS="\n+?[$]{4}\n+?" '/HMDB0000008/' test.xt

しかし、私が望むのは、コマンドラインから呼び出して引数を渡して、私が望むものを見つけるのを助けることです。

たとえば、次のようになります。

awk -f var=HMDB0000008 RS="\n+?[$]{4}\n+?" '/$var/' test.txt

しかし、これはうまくいかないようです。最良の方法が何であるかを教えてください。

ありがとう

ベストアンサー1

awk は変数の拡張には使用されず、$さらに -f ではなく -v オプションとともに渡されます。また、内部文字列は/.../正規表現パターンとして扱われるため、~行全体()で$0パターン一致演算子を使用する必要があります。

awk -v var=HMDB0000008 -v RS="\n+?[$]{4}\n+?" '$0 ~ var' test.txt

おすすめ記事