sedを使用してUnixでテキストを選択する

sedを使用してUnixでテキストを選択する

テキストファイルの特定の部分を選択して他のファイルに印刷/保存したいです。

特定のパターンが一致すると選択が開始され、他のパターンが一致すると選択が終了します。 awkなしでこれを行う必要があります。 sedを使用しようとしています。

  • 見つかったら選択を始めてください。予想される
  • 見つかるまで実際

> |e|build_event_details_json(e) })
       expected collection contained:  [{"id"=>18646, "state"=>"available", "salesEndAtUtc"=>"2018-09-22T00:00:00.000Z",actual collection contained:    [{"id"=>18646

答えは

>  expected collection contained:  [{"id"=>18646, "state"=>"available", "salesEndAtUtc"=>"2018-09-22T00:00:00.000Z",

ベストアンサー1

非常にエレガントでも効率的でもありませんが、作業を完了します。

sed 's/actual/\n&/' file | sed -n '/expected/,/actual/p' | sed '$d'
       expected collection contained:  [{"id"=>18646, "state"=>"available", "salesEndAtUtc"=>"2018-09-22T00:00:00.000Z",

多分少し良いかもしれません(GNUを使用sed):

sed -n '/expected/,$ {s/actual.*$//; p; T; q; } ' file

このTコマンドが利用できない場合は試してください。

sed -n '/expected/,$ {s/actual.*$//; p; tL; b; :L; q; } ' file

おすすめ記事