人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

UNIX系のコマンドで次のような処理をする方法を教えてください。

データのヘッダ行が与えられた条件を満たしたときに、ヘッダそのものと次のヘッダ行までのデータを取り出す。

例:
以下のような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

●質問者: spin6536
●カテゴリ:コンピュータ 科学・統計資料
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● nattow
●100ポイント ベストアンサー

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

もうちょっとコマンドを駆使してスマートにやる方法があるかもしれませんが・・・。


spin6536さんのコメント
できました!ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ