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.

  1. Start recording Macro
  2. Press down n-times
  3. Press Shift+End
  4. Press delete two times
  5. Stop recording Macro
  6. 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:

  1. Ctrl F and go to Replace
  2. In search mode, select "Extended (\n, \r, \t .. )"
  3. Find what: \n\n
  4. Replace with: \n
  5. 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionfightstarr20View Question on Stackoverflow
Solution 1 - CsvJasperView Answer on Stackoverflow
Solution 2 - CsvbsmkView Answer on Stackoverflow
Solution 3 - CsvSteven CView Answer on Stackoverflow
Solution 4 - CsvEvan ReynoldsView Answer on Stackoverflow
Solution 5 - CsvUndergeekerView Answer on Stackoverflow
Solution 6 - CsvkhinkleView Answer on Stackoverflow
Solution 7 - CsvHunterView Answer on Stackoverflow