ソースはテキストファイルです。 KEYで始まる行があります。その場合、目的はその行がその行の前の行と結合されていることです。 KEYが存在しない場合もあります。その場合、行は変更なしで出力に転送されます。一致しない文字列または「行対」のいずれにもパターンはありません。それぞれが個別に、または2行以上のグループで発生する可能性があります。bashは2行目の先頭でKEYと行を結合します
1234 abc
abcdef
abcdef1
KEY xyx
any arbitrary string not starting with KEY
def 987
目的が変更されていない基準を満たさない行を残しながら、一行に「ラインペア」を組み合わせることである:入力テキストファイルの
例。
所望の出力
1234 abc
abcdef
abcdef1KEY xyx
any arbitrary string not starting with KEY
def 987
キーは「線対」の最初の行にある解決策があります。好ましい解決策は、sed、perl、awkの順である。しかし、より高い優先度が解決策です!
説明は、より多くの情報を提供するために、より良い...複雑に聞こえます。文字列を実際のデータに置き換え、可能な出力を助言する。解決策は、 'grep -A 2" KEY "file' - キーを見つけて次の2行を得るという単純なものです。しかし、それはあなたが欲しいものは簡単ですか?私はそうは思わない。より良い説明を与える。 –
2行目がKEYで始まるときに2行を結合したいと思うと思います。 –
@WalterAこのような場合、彼は 'grep -B 1" KEY "file'を意味しますか? –