awkの変数についてわからないことがありましたので、質問させていただきます。
以下のような2つのファイルがあり、マッチする行のみを抽出したいと考えています。
file
1#a.txt 2BED600184 3BED600186 4BED600187
file
1#b.txt 2BED600184.txt BED611311.XML 0.890685 10 3BED600184.txt BED611312.XML 0.902536 10 4BED600186.txt BED600184.XML 0.093557 10 5BED600187.txt BED611312.XML 0.854495 10 6BED600188.txt BED600184.XML 0.168811 10
理想な出力
output
1BED600184.txt BED611311.XML 0.890685 10 2BED600184.txt BED611312.XML 0.902536 10 3BED600186.txt BED600184.XML 0.093557 10 4BED600187.txt BED611312.XML 0.854495 10
以下が作成したコードになります。
awk
1for a in `cat a.txt` ; do 2 awk -v "a=$a" 'BEGIN{FS=" "} $1 ~ /a/ {print $0}' b.txt 3done
このコードではawk内で変数a
にラベルを代入しているのですが、
思ったような動作せず、何も出力されません。
また今回、for文で繰り返しているのですが、それぞれのラベルに対して別の処理を行いたいと
考えてるので、このようにしています。
変数を用いず、ラベルを直接入れて確認したところ、上手く動作したので、おそらく変数a
の使い方が間違っているのではないかと思っております。
分かる方がいましたら、回答いただけると助かります。
※ご回答いただいた内容に質問させていただくこともあるかと思いますので、
※よろしければご返信いただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/05 06:51