回答:
Notepad ++はこれを行うことができますが、行ごとに並べ替え、同時に重複する行を削除する必要がありました。
TextFXプラグインが必要になります。これは以前のバージョンのNotepad ++に含まれていましたが、新しいバージョンがある場合は、に移動してメニューから追加できますPlugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
。場合によってはと呼ばれることもありますTextFX Characters
が、これは同じことです
必要なチェックボックスとボタンが次のメニューに表示されますTextFX -> TextFX Tools
。
「出力のみを一意にソート...」がチェックされていることを確認してください。次に、テキストのブロックを選択します(Ctrl+ Aはドキュメント全体を選択します)。最後に、「行の大文字と小文字を区別する」または「行の大文字と小文字を区別しない」をクリックします。
Notepad ++バージョン6以降、この正規表現を検索および置換ダイアログで使用できます。
^(.*?)$\s+?^(?=.*^\1$)
そして何と交換してください。これにより、すべての重複行から、ファイル内の最後のオカレンスが残ります。
そのための並べ替えは必要ありません。重複する行はファイルのどこにあってもかまいません。
オプション「正規表現」と「。は改行に一致する」をチェックする必要があります。
^
行頭に一致します。
(.*?)
任意の文字に0回以上一致しますが、できる限り少なく一致します(行で完全に一致します。これは、「。は改行に一致する」オプションのために必要です)。かっこで囲まれ、次を使用してアクセスできるため、一致した行が保存されます\1
$
行末と一致します。
\s+?^
この部分は、次の行の先頭までのすべての空白文字(改行!)に一致します==>これにより、一致した行の後の改行が削除され、置換後に空の行がなくなります。
(?=.*^\1$)
これは肯定的な先読み表明です。これはこの正規表現の重要な部分であり、ファイル内のどこかでまったく同じ行が続く場合にのみ、行が一致(および削除)されます。
. matches newline
トリックが行われました。
行がお互いの直後にある場合は、正規表現の置換を使用できます。
検索パターン: ^(.*\r?\n)(\1)+
と置換する: \1
^(.*\r?\n)(\1)+
メモ帳++
->ウィンドウを置き換える
検索モードで、[ 正規表現 ]ラジオボタンが選択されていることを確認します
何を見つける:
^(。*)(\ r?\ n \ 1)+ $
と置換する:
$ 1
前:
私たちはそこにいると思います
私たちはそこにいると思います
単線
することは可能ですか
することは可能ですか
後:
私たちはそこにいると思います
単線
することは可能ですか
行の順序を気にしない場合(私はそうは思わないでしょう)、Linux / FreeBSD / Mac OS X / Cygwinボックスを使用して、次のことができます。
$ cat yourfile | sort | uniq > yourfile_nodups
次に、ファイルをNotepad ++で再度開きます。
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Notepad ++の後者のバージョンには、TextFXプラグインが含まれていないようです。プラグインを使用して重複を並べ替え/削除するには、プラグインをダウンロードしてインストールするか(より複雑に)、プラグインマネージャを使用して追加する必要があります。
A)簡単な方法(ここで説明)。
プラグイン->プラグインマネージャ->プラグインマネージャの表示->利用可能なタブ-> TextFXキャラクター->インストール
B)より複雑な方法、別のバージョンが必要な場合、または簡単な方法が機能しない場合。
SourceForgeからプラグインをダウンロードします。
zipファイルを開き、NppTextFX.dllを抽出します
場所NppTextFX.dll次のようなメモ帳++ pluginsディレクトリで、
C:\プログラムファイル\メモ帳++ \プラグイン
Notepad ++を起動すると、TextFXがファイルメニュー項目の1つになります(Colin Pickardによる上記の回答1を参照)。
TextFXプラグインをインストールしたら、回答1の手順に従って重複をソートして削除します。
また、このコマンドを頻繁に使用する場合や、ソートのためにTextPadのF9などのキーボードショートカットを複製する場合は、[設定]> [ショートカットマッパー]を使用してキーボードショートカットを設定することを検討してください。
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
。それ以外は、これでも問題なく動作します。
正規表現を検索します。 \b(\w+)\b([\w\W]*)\b\1\b
それを次のものに置き換えます。 $1$2
ファイル内の正規表現に一致するものがなくなるまで、[ 置換 ]ボタンをクリックします。
どれも私のために働いていません。
解決策は次のとおりです。
交換する
^(.*)\s+(\r?\n\1\s+)+$
と
\1
^(.*)\s+(\r?\n\1\s+)+$
、そうではないの^(.*)\s*(\r?\n\1\s*)+$
ですか?
プラグインマネージャは、現在Notepad ++では使用できません(配布には付属していません)。手動でインストールする必要があります(https://github.com/bruderstein/nppPluginManager/releases)。インストールしても、多くのプラグインが利用できなくなります(TextFXなし)。
必要な機能を含む別のプラグインがあるかもしれません。それ以外の場合、Notepad ++でこれを行う唯一の方法は、照合と置換に特別な正規表現を使用することです([ Ctrl+ ] F→ [ 置換 ]タブ)。
[ 編集 ]メニュー項目(トリミング、空の行の削除、並べ替え、EOLの変換)を介して利用できる機能はたくさんありますが、「独自の」操作はありません。
Windows 10を使用している場合は、Bashを有効にして(Microsoft StoreでUbuntuと入力し、説明の指示に従ってインストールする)、を使用できますcat your_file.txt | sort | uniq > your_file_edited.txt
。もちろん、「your_file.txt」と同じ作業ディレクトリにいるか、パスを介して参照する必要があります。