2016-06-15 3 views
-3

私はそう別のパターンが収集されるまで、パターンラインとその次の行を収集するためにsedを使って

>Good_Description1 
information 
information 
information 
>BadDescription1 
information 
information 
information 
>Good_Description2 
information 
information 
information 

のようなファイルから特定の出力を生成しようとしています、私は生産したいと思います:

>Good_Description1 
information 
information 
information 
>Good_Description2 
information 
information 
information 

どうやってこれをやりますか?救助へ

-Thanks

+1

私はperlを使用します。 – melpomene

+1

あなたのサンプルは非常に静的に見えます。 Good/Badの記述の行数は変わるでしょうか? GoodとBad(タイトル)の実際のテキストは変更されますか?両方のタイプの '情報'のテキストは変わるでしょうか?おそらく、サンプルデータを更新して、データ内で見つかると予想される変動の範囲を反映するか、データが実際にこの静的であることを示します(もちろん、 '情報'(その他)はプレースホルダーです)。下院(私からではない)は、あなたの問題を解決しようとする試みを実際に示すべきであるということです。がんばろう。 – shellter

+0

テキストの第1ブロックと第3ブロックだけが印刷されますか?あなたは考えを得る - 入力を出力に変換するために使用したい基準をまだ教えていないなら、あなたは2つのスタックのスタックを見せて、あなたが1つを他のものにしたいと言った。あなたは、私があなたの質問をきれいにするとき/私が退くことになる、downvoteと、私にはあまりにも幅広い投票を得ました。 –

答えて

1

awk

$ awk '/^>Good_Des/{p=1} /^>BadDes/{p=0} p' file 

>Good_Description1 
information 
information 
information 
>Good_Description2 
information 
information 
information 
0

これはあなたのために働くかもしれない(GNUのSED):

sed '/>/h;G;/>Good_Description/P;d' file 

ストアホールドスペースの記述および各ラインに追加します。行に>Good_Descriptionが含まれている場合は、最初の行のみを出力します。

関連する問題