行からあるパターンの前のすべての項目と別のパターンの後のすべての項目を削除するにはどうすればよいですか?

行からあるパターンの前のすべての項目と別のパターンの後のすべての項目を削除するにはどうすればよいですか?

次のファイルから:

Lorem ipsum dolor sat amet, consectetuer adipiscing elit. Ut eu metus id lectus前庭脊椎。マエケナスロングス。

consectetuer前後の内容をすべて削除したいと思いますelit

私が望む出力:

consectetuer adipiscing elit.

どうすればいいですか?

ベストアンサー1

私はsedを使用します

sed 's/^.*\(consectetuer.*elit\).*$/\1/' file

sed s/find/replace/ デコード構文:

  • s/^.*- 置換は行^の先頭()から始まり、次に次の項目(.*)が続きます。
  • \(- 名前付きブロックの開始
  • consectetuer.*elit\.- 最初の単語と一致し、最後の単語(この場合は末尾(エスケープ)点を含む)までのすべての(.*)が一致します。
  • \)- 名前付きブロックの終わり
  • 他のすべての項目(.*)を行末($)と一致させます。
  • /- 代替検索セクションの終わり
  • \1\(-\)上と上の間の名前ブロックに置き換えられます。
  • /- 交換の終わり

おすすめ記事