Delete every other line in notepad++
CsvNotepad++Csv Problem Overview
Is there a way in Notepad++ to delete every other or nth line? I have a massive list of data and I need to reduce the size.
The data itself is not that important and out of a list of 10,000 items I only need a selection of 5,000
Csv Solutions
Solution 1 - Csv
I'm not sure Notepad++ is the best tool for this, but using the Power of Regex, we should be able to do it.
Open the replace menu, fill in ([^\n]*\n)[^\n]*\n
in the "Find what" box and $1
in the "Replace with" box. Then select regular expression for the search mode, click replace all and every second line is deleted.
You can build similar regexes if you want to do something similar. For example, (([^\n]*\n){a})[^\n]*\n
will replace every nth line if you replace a
by n - 1 and [^\n]*\n([^\n]*\n)
will let you keep even lines instead of odd ones.
Solution 2 - Csv
You can try to use a Macro.
- Start recording Macro
- Press down n-times
- Press Shift+End
- Press delete two times
- Stop recording Macro
- Run Macro until end of file
Solution 3 - Csv
I came across this issue myself. What worked for me, also using the Find/Replace function, is to:
- Ctrl F and go to Replace
- In search mode, select "Extended (\n, \r, \t .. )"
- Find what: \n\n
- Replace with: \n
- Replace All
Solution 4 - Csv
I think you can do this with awk if you're on a unix style platform:
awk 'NR % 2 == 0' file > outfile
NR is the line number, so this will just say "if the line is divisible by 2 stick it in newfile."
If you are on windows, I think the answer here would work:
https://stackoverflow.com/questions/327500/batch-file-to-keep-one-of-ten-lines
Solution 5 - Csv
Mirroring that question, here is a solution for most OS using "find & replace" :
- Set the cursor on the first line
- Open the replace dialog (Ctrl + H)
- Select "Regular expression"
- Find what:
(.+\R).+(\R|$)
- Replace with:
$1
- Press "Replace All"
Note:
- No "Wrap around"
- \R is the Unix/Mac/Windows regex for "end of line"
Solution 6 - Csv
I don't think there is a feature in Notepad++ that will automatically delete every other (or every nth) line, but if you wrote a short conversion program it would only take a few minutes.
The pseudocode would look something like this:
1. Create a StreamReader and StreamWriter (make sure you are not trying to read from
and write to the same file)
2. While (StreamReader is reading lines) increment i. You could mod it by whatever
number n you wanted in order to delete certain lines. Then have a conditional clause
that would write out if i%n == 0 or whatever you specify.
3. Close the program.
That doesn't exactly answer your question, but I hope it helps.
Solution 7 - Csv
Another way, you can use the command line cc.dl 5.5
of ConyEdit(a plugin) to delete the very fifth line of each group, five lines for each group.