Notepad ++中有没有办法删除每隔一行或第n行?我有大量数据,我需要减小大小。
数据本身并不重要,在 10,000 个项目的列表中,我只需要选择 5,000 个
我不确定 Notepad++ 是不是最好的工具,但是使用正则表达式的力量,我们应该能够做到。
打开替换菜单,填写([^\n]*\n)[^\n]*\n
“查找内容”框和$1
“替换为”框。然后选择正则表达式作为搜索模式,点击全部替换,每隔一行删除一次。
如果您想做类似的事情,您可以构建类似的正则表达式。例如,如果您用n - 1(([^\n]*\n){a})[^\n]*\n
替换,将替换每第 n 行,并让您保留偶数行而不是奇数行。a
[^\n]*\n([^\n]*\n)
您可以尝试使用宏。
我自己也遇到过这个问题。对我有用的,也使用查找/替换功能,是:
如果您使用的是 unix 风格的平台,我认为您可以使用 awk 执行此操作:
awk 'NR % 2 == 0' file > outfile
NR 是行号,所以这只会说“如果该行可被 2 整除,请将其粘贴到 newfile 中”。
如果您在 Windows 上,我认为这里的答案会起作用:
反映这个问题,这是大多数操作系统使用“查找和替换”的解决方案:
(.+\R).+(\R|$)
$1
笔记:
我不认为 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.
这并不能完全回答你的问题,但我希望它有所帮助。
另一种方式,您可以使用cc.dl 5.5
ConyEdit(一个插件)的命令行删除每组的第五行,每组五行。