Csv 在记事本中每隔一行删除一行++

Csv 在记事本中每隔一行删除一行++,csv,notepad++,Csv,Notepad++,在记事本++中有没有办法每隔一行或第N行删除一行?我有一个庞大的数据列表,我需要缩小它的大小 数据本身并不是那么重要,在10000个项目的列表中,我只需要选择5000个,我不认为记事本++中有自动每隔一行或每N行删除的功能,但是如果你编写一个简短的转换程序,只需要几分钟 伪代码如下所示: 1. Create a StreamReader and StreamWriter (make sure you are not trying to read from and write to the

在记事本++中有没有办法每隔一行或第N行删除一行?我有一个庞大的数据列表,我需要缩小它的大小


数据本身并不是那么重要,在10000个项目的列表中,我只需要选择5000个,我不认为记事本++中有自动每隔一行或每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.

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

如果您使用的是unix风格的平台,我认为您可以使用awk实现这一点:

awk 'NR % 2 == 0' file > outfile
NR是行号,所以这只表示如果该行可以被2整除,则将其粘贴到newfile中

如果您使用的是windows,我想这里的答案是可行的:


我不确定Notepad++是否是最好的工具,但是使用Regex的强大功能,我们应该能够做到这一点

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


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

可以尝试使用宏

开始录制宏 按下n次 按Shift+End 按delete键两次 停止录制宏 运行宏直到文件结束
我自己也遇到过这个问题。对我来说,同样使用查找/替换功能的工作是:

按住Ctrl键F并转到“替换” 在搜索模式中,选择扩展\n\r\t。。 查找内容:\n\n 替换为:\n 全部替换
另一种方法是,您可以使用ConyEdita plugin的命令行cc.dl 5.5删除每个组的第五行,每个组五行。

镜像,以下是使用查找和替换的大多数操作系统的解决方案:

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

无环绕 \R是Unix/Mac/Windows正则表达式,表示行结束
记事本++没有这样的功能。但是,编写一个每隔一行就删除一行的程序只需要几行。我认为批处理文件可能是适合我的情况的最简单的选择。又好又简单!我需要将\r\n\r\n替换为\r\n,但同样的概念谢谢,尽管这很奇怪,我在手机上使用跟踪应用程序中的GPS点,导出为KML,导入到荔枝飞行中心供我的无人机使用,但是,有很多点,这能够减少这些点&仍然保持路线[^\n]*\n表示查找带有换行符的整行。是否与^.*\n相同?。。。我想是的,或多或少,因为[^\n]意味着找到任何不是符号的符号\n@Kardaw有一个小区别:取决于多行模式是否打开以及正则表达式的风格,点也可能匹配换行符,因此正则表达式也可能匹配两行或任何其他数量的行,而不是一行。我认为这不是一个问题,但是如果查询需要回溯的话,它可能会导致不必要的影响或性能下降。我喜欢尽可能地保持正则表达式的风格独立,并且不喜欢性能陷阱,因此我编写了较长的查询。