Is it possible to remove duplicated rows in Notepad++, leaving only a single occurrence of a line?
相关问题
- Fixing Markdown styling in Notepad++
- Notepad++ Regex + python script (addition in the r
- Regex to find double parenthesis using Notepad++
- Remove specific duplicate lines without sorting
- How to delete first blank row in multiple files?
相关文章
- Disabling drag-and-drop of text in Notepad++
- How can I do a non greedy regex query in notepad++
- regular expression to add characters before and af
- Regex to replace spaces with tabs at the start of
- Getting NppExec to understand path of the current
- Creating new shortcut in notepad++
- Catching a PHP variable using double click in Note
- Notepad++ does not highlight css inside HTML file
Notepad++
-> Replace window
Ensure that in Search Mode
you have selected Regular expression radio button
Find what:
Replace with:
before:
after:
Plugin manager is currently unavailable(does not come with the distribution) for Notepad++ , you must install it manually ( https://github.com/bruderstein/nppPluginManager/releases ) and even if you do, a lot of the plugins are not available anymore (no TextFX) plugin.
Maybe there is another plugin which contains the required functionality. Other than that the only way to do it in NotePad++ is to use some special regex for matching and then replacing (CTRL+F -> Replace tab).
Although there are many functionalities available via Edit menu item (trimming, removing empty lines, sorting, converting EOL) there is no "unique" operation available.
I you have Windows 10 then you can enable Bash (just type Ubuntu in Microsoft Store and follow the instructions in the Description to install it) and use
cat your_file.txt | sort | uniq > your_file_edited.txt
. Of course you must be in the same working directory as "your_file.txt" or refer to it via it's path.Since Notepad++ Version 6 you can use this regex in the search and replace dialogue:
and replace with nothing. This leaves from all duplicate rows the last occurrence in the file.
No sorting is needed for that and the duplicate rows can be anywhere in the file!
You need to check the options "Regular expression" and ". matches newline":
^
matches the start of the line.(.*?)
matches any characters 0 or more times, but as few as possible (It matches exactly on row, this is needed because of the ". matches newline" option). The matched row is stored, because of the brackets around and accessible using\1
$
matches the end of the line.\s+?^
this part matches all whitespace characters (newlines!) till the start of the next row ==> This removes the newlines after the matchd row, so that no empty row is there after the replacement.(?=.*^\1$)
this is a positive lookahead assertion. This is the important part in this regex, a row is only matched (and removed), when there is exactly the same row following somewhere else in the file.Notepad++ can do this, provided you wanted to sort by line, and remove the duplicate lines at the same time.
You will need the TextFX plugin. This used to be included in older versions of Notepad++, but if you have a newer version, you can add it from the menu by going to
Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. In some cases it may also be calledTextFX Characters
, but this is the same thingThe check boxes and buttons required will now appear in the menu under:
TextFX -> TextFX Tools
.Make sure "sort outputs only unique..." is checked. Next, select a block of text (Ctrl+A to select the entire document). Finally, click "sort lines case sensitive" or "sort lines case insensitive"
Search for the Regular Expression:
\b(\w+)\b([\w\W]*)\b\1\b
Replace it with:
$1$2
Hit Replace Button Until there is no more Matches for the Regular Expression in your file.
The latter versions of Notepad++ do not apparently include the TextFX plugin at all. In order to use the plugin for sorting/eliminating duplicates, the plugin must be either downloaded and installed (more involved) or added using the plugin manager.
A) Easy way (as described here).
Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX Characters -> Install
B) More involved way, if another version is needed or the easy way does not work.
Download the plugin from SourceForge:
http://downloads.sourceforge.net/project/npp-plugins/TextFX/TextFX%20v0.26/TextFX.v0.26.unicode.bin.zip
Open the zip file and extract NppTextFX.dll
Place NppTextFX.dll in the Notepad++ plugins directory, such as:
C:\Program Files\Notepad++\plugins
Start Notepad++, and TextFX will be one of the file menu items (as seen in Answer #1 above by Colin Pickard)
After installing the TextFX plugin, follow the instructions in Answer #1 to sort and remove duplicates.
Also, consider setting up a keyboard shortcut using Settings > Shorcut mapper if you use this command frequently or want to replicate a keyboard shortcut, such as F9 in TextPad for sorting.