awkの正規表現にシェル変数を

awkで行を抜き出す時などにシェルから変数を渡して、それを正規表現内で用いて処理したいと常から思っていたがうまくいっていなかった。下記のようにすれば良いらしい。変数宣言のところでダブルクオーテーションで囲んで正規表現を作っておいてこれを~で呼び出せば良い。
tmp=22
awk  -v pattern="chr${tmp}_" '$1~pattern {print $0}'
これでchr22_という文字列が1番目のカラムに含まれる行のみ出力される、

このブログの人気の投稿

Inverse-normal transformation

SKAT

locuszoom