正規表現を使用して、ファイル内で最初に一致する一意の項目を見つけます。

正規表現を使用して、ファイル内で最初に一致する一意の項目を見つけます。

ファイル内で最初に一致する一意の項目を見つけたいです。以下のサンプルデータで各ブロックの最初の出現を見つけたいと思います。

Chunk 1
some text
second line of random text
Chunk 2
some text
second line of random text
Chunk 3
some text
second line of random text
Chunk 1
some text
second line of random text
Chunk 3
some text
second line of random text
Chunk 2
some text
second line of random text

チャンク[1-8]は、一致するすべてのインスタンスを返します。最初は、各固有のチャンク番号をリストしたいと思います。正規表現は機能するため、Notepad ++で使用でき、最終的にPythonスクリプトに統合できます。また、一意の一致と各固有の一致の後の「任意の2番目のテキスト行」を返したいと思います。

だから私が見たいのは

Chunk 1 (first occurrence)
second line of random text
Chunk 2 (first occurrence)
second line of random text<br>
Chunk 3 (first occurrence)
second line of random text

ベストアンサー1

GNUの使用awk:

gawk -v 'RS=Chunk [0-9]+\n' -v ORS= '
  {$0=lastRT $0}
  NR>1 && !seen[$0]++
  {lastRT = RT}'

おすすめ記事