行から文字列を検索し、関連する行を追加します。

行から文字列を検索し、関連する行を追加します。

IDDSいくつかの(識別子)と(説明)行を含むファイルがあります。この値を持つ行とstring次の行を維持したいと思います。IDDSID

ID  number1 string
DS  item11
DS  item12
ID  number2 not_string
DS  item21 
DS  item22
ID  number3 string
DS  item31
DS  item32

次を返します。

ID  number1 string
DS  item11
DS  item12
ID  number3 string
DS  item31
DS  item32

ベストアンサー1

not_string私が正しく理解したら、あなたの入力をテストするように変更します。

ID  number1 string                                                              
DS  item11                                                                      
DS  item12                                                                      
ID  number2 qwerty                                                               
DS  item21                                                                      
DS  item22                                                                      
ID  number3 string                                                              
DS  item31                                                                      
DS  item32

努力する:

$ awk '/ID/ && !/string/{flag=0;next};/string/{flag=1};flag' file 
ID  number1 string
DS  item11
DS  item12
ID  number3 string
DS  item31
DS  item32

おすすめ記事