スタックオーバーフロー質問の回答に基づいてsed / grepを使用して2つの単語間のテキストを抽出するには?、我々は2つの単語の間のテキストを得ることができます:
sed -n "/first/,/second/p" file
しかし、次のようにファイルの単語と最後の行の間にテキストをインポートするにはどうすればよいですか?
sed -n "/word/,/lastline/p" file
ベストアンサー1
実行したい最後の行が含まれています。
sed -n '/word/,$p'
word
これは、最後の行まで、すべての項目の最初の項目と一致し、すべての一致を印刷します。
最後の行を除く:
sed '/word/,$!d;$d'
...削除否定的な一致した後、最後の行を削除してください。
最後のゲームから最後の行まで行くには、もっと頑張ってください。
sed -e :n -e '/\n.*word/D;N;$q;bn'
繰り返す - 通常のsed
ラインループを完了せずに、代わりに次の入力ラインをパターンスペースバッファに追加してb
再実行するために戻ります。ただし、パターン空間に少なくとも2行があり、最後の行が一致する場合言葉一致する行を除き、バッファ内のすべてを削除します。言葉。最後の行では、quits
ループが中断されます。したがって、印刷されるのは、次を含む行の最後の項目のすべてです。言葉最後の行まで。
うーん…おそらく私が必要以上に大変にしているようです。
sed 'H;$x;/word/h;$!d'
このようにしてスペースを保存するために、各行が追加されます。しかし、ラインは一致します。言葉それから書くスペースを維持してください。最後の行を除くパターン空間のすべての行が削除されます。最後の行では、ホールドスペースに貼り付けた直後にホールドスペースとパターンスペースがスワップされます。(最後の行に単語も含まれている場合)そして前回のすべて言葉印刷オーバーレイ予約スペース。