GNU sedを使用して空行で区切ることができる2つのパターン行間のヘッダー名の抽出

GNU sedを使用して空行で区切ることができる2つのパターン行間のヘッダー名の抽出

次のファイルがあります。

------

Introduction
----------
Optio eum enim ut. Et quia molestias eos. Doloribus laborum quia quae. Magnam cupiditate quis consectetur.

-----
Chapter1: Foo
-----

Odit beatae eius voluptas temporibus sint quia. Eos et tempora similique laboriosam optio consequatur quibusdam. Fugit suscipit cupiditate ea perspiciatis rem labore cum eos.

-----
Chapter bar


-----
Et consequatur quia quia et architecto et sunt. Perferendis qui deserunt qui est illo est sapiente ipsam. Fugiat vel amet magni in quam. Eligendi totam cum sapiente harum blanditiis minima

次の制約があります。

  • タイトル記号は-少なくとも5文字でなければなりません。
  • -ヘッダーとヘッダーの間には、必要な数の空白行があるかもしれません(しかし制限されています)。

予想される出力は次のとおりです。

Introduction
Chapter1: Foo
Chapter bar

を使用してこれを行うことができることを知っていますが、awk提案しないでください。私は純粋なGNU sedソリューションを見たいです。

これまでに試したことは次のとおりです。

sed -n ':a; /-\+/{n; /^$/!{p; b a}}' input.txt

しかし、コマンドが機能していないようです。

ベストアンサー1

これにより、ヘッダー内にある1つ以上の英字または数字を含む行が印刷されます。

sed -n '/^-----/,/^-----/{/[[:alnum:]]/p;}' file

おすすめ記事