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