Notepad++: 繰り返し行のみを残し、繰り返し行以外の行を削除する方法

Notepad++: 繰り返し行のみを残し、繰り返し行以外の行を削除する方法

たとえば、次のようなものがあったとします。

Example
Example
1
1
3

希望:

Example
1

答え1

ファイルがソートされ、空行で終了していると仮定します


  • Ctrl+H
  • 検索対象:^(.+\R)(\1)*
  • と置換する:$2
  • ティック マッチケース
  • ティック 包み込む
  • 選択する 正規表現
  • チェックを外す . matches newline
  • Replace all

説明:

^           # beginning of line
    (           # group 1
        .+          # 1 or more any character but newline
        \R          # any kind of linebreak
    )           # end group 1
    (           # group 2
        \1          # backreference to group 1 (i.e. same value as captured in group 1)
    )*          # end group 2, may appear 0 or more times

交換:

$2          # content of group 2, will be empty if there are no duplicates

スクリーンショット(前):

ここに画像の説明を入力してください

スクリーンショット(後):

ここに画像の説明を入力してください

答え2

次のソリューションでは、重複する行がファイル内の 1 つのシーケンスに含まれている必要があります。

ユニークな行を削除するには、投稿を見つけました
テキストファイル内の重複行(一意の行ではなく)をすべて検索して保持します。

投稿内の回答とコメントに基づいて、以下では固有の行を削除します。

「検索と置換」ダイアログ ( Ctrl+ H) で次の操作を行います。

検索対象:^((.*)\R(\2\R?)+)*\K.*?\n
と置換する: 何もない
検索モード: 正規表現
. は改行に一致します: チェック済み

一意の行を削除するには、「すべて置換」をクリックします。

重複行を削除するには、投稿を参照してください メモ帳で重複行を削除する

関連情報