删除记事本++中的所有其他行

时间:2013-07-18 22:47:16

标签: csv notepad++

Notepad ++中有没有办法删除其他所有行或第n行?我有大量的数据列表,我需要减小它的大小。

数据本身并不重要,在10,000个项目的列表中,我只需要选择5,​​000个

7 个答案:

答案 0 :(得分:87)

我认为尝试使用Notepad ++是一个奇怪的想法,但我喜欢挑战,所以我决定给它一个旋转。

打开替换菜单,在“查找内容”框中填写([^\n]*\n)[^\n]*\n,在“替换为”框中填写$1。然后为搜索模式选择正则表达式,单击全部替换,每隔一行删除。

如果你想做类似的事情,你可以建立类似的正则表达式。例如,如果您将(([^\n]*\n){a})[^\n]*\n替换为n - 1,则a将替换每第n行,而[^\n]*\n([^\n]*\n)将允许您保持偶数行而不是奇数行。

(这一点都不难 - 我所要做的就是更新我过时的Notepad ++安装。)

答案 1 :(得分:21)

您可以尝试使用宏。

  1. 开始录制宏
  2. 按下n次
  3. 按Shift +结束
  4. 按两次删除
  5. 停止录制宏
  6. 运行宏直到文件结尾

答案 2 :(得分:6)

如果您使用的是unix风格平台,我认为您可以使用awk执行此操作:

awk 'NR % 2 == 0' file > outfile

NR是行号,所以这只会说“如果该行可被2整除,则将其粘贴在新文件中”。

如果你在Windows上,我认为这里的答案可行:

batch file to keep one of ten lines

答案 3 :(得分:2)

我自己遇到过这个问题。使用查找/替换功能对我有用的是:

  1. 按Ctrl F并转到替换
  2. 在搜索模式中,选择“扩展(\ n,\ r,\ t \ t \ t)\ n”
  3. 找到:\ n \ n
  4. 替换为:\ n
  5. 全部替换

答案 4 :(得分:2)

镜像 that question,这是大多数使用“查找和替换”的操作系统的解决方案:

  • 将光标设置在第一行
  • 打开替换对话框 (Ctrl + H)
  • 选择“正则表达式”
  • 查找内容:(.+\R).+(\R|$)
  • 替换为:$1
  • 按“全部替换”

注意:

  • 没有“环绕”
  • \R 是“行尾”的 Unix/Mac/Windows 正则表达式

答案 5 :(得分:0)

我不认为Notepad ++中有一个功能会自动删除所有其他(或每个第n)行,但如果你写了一个简短的转换程序,它只需要几分钟。

伪代码看起来像这样:

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.

这并不完全回答你的问题,但我希望它有所帮助。

答案 6 :(得分:0)

另一种方法,您可以使用ConyEdit(一个插件)的命令行cc.dl 5.5删除每组的第五行,每组五行。