データのヘッダ行が与えられた条件を満たしたときに、ヘッダそのものと次のヘッダ行までのデータを取り出す。
例:
以下のようなin.fileのヘッダ行の$2=="A"の場合のみ、ヘッダ行とその下のデータを取り出す。
"in.file"
> A
28 9
27 10
30 6
> B
-67 5
-65 9
-50 5
> A
200 5
223 4
"out.file"
> A
28 9
27 10
30 6
> A
200 5
223 4
awk での一例
awk 'BEGIN{f=0}{if($1==">"){if ($2 == "A"){f=1; print $0}else{f=0}}else{if(f==1){print $0}}}' in.file > out.file
もうちょっとコマンドを駆使してスマートにやる方法があるかもしれませんが・・・。
できました!ありがとうございます!
2012/02/22 14:03:00