1行にパターンが含まれていて、その後に同じパターンの他の行がある場合は、最初の行を削除してください。

1行にパターンが含まれていて、その後に同じパターンの他の行がある場合は、最初の行を削除してください。

本当に申し訳ありません…脳が凍り付いて理解できません。私はsedとパターンスペースを使用していますが、パターンを含む行のすべてのアイテムを削除し続けます。

パターンを含む最初の行を削除してから、同じパターンを含む別の行を削除したいと思います。

私が作業しているリストには、同じパターンを含む2行以上の連続行がありません。

モードは「クエリ」です

私のデータは次のとおりです。

Query: A ANNUAL SERVICE FEE                                                                          
       SourceField:               EXP-ANNUAL:       SourceTable:               MASTER
Query: A ANNUAL SERVICE FEE                                                                          
Query: A Edie ACTIVE LNS                                                                             
       SourceField:               LOAN-NO:      SourceTable:               MASTER
Query: A Edie ACTIVE LNS                                                                             
       SourceField:               LO:           SourceTable:               MASTER

これが私が望むものです:

Query: A ANNUAL SERVICE FEE                                                                          
       SourceField:               EXP-ANNUAL:       SourceTable:               MASTER                                                                      
Query: A Edie ACTIVE LNS                                                                             
       SourceField:               LOAN-NO:      SourceTable:               MASTER
Query: A Edie ACTIVE LNS                                                                             
       SourceField:               LO:           SourceTable:               MASTER 

ベストアンサー1

sed '/^Query/{N;/\nQuery/D;}' file

で始まる行に、Query次の行をパターン空間に追加します。次の行が次から始まる場合は、Query最初の行を削除してください。

最後の行を印刷したくない場合(最後の行が一致する場合^Query):

sed -n '/^Query/{N;/\nQuery/D;};p' file

おすすめ記事