从文本文件中删除长行(Notepad++/EditPlus)

5

我有一个非常大的文本文件。 这个文本文件中的每一行都有一个完整的句子。 现在我需要删除长度超过x个字符的每一行/句子,只保留长度<=x的行。

这是可能的吗? 我可以使用Notepad++ / EditPlus或正则表达式来完成吗?

谢谢你的帮助!


这是在Windows还是Linux系统中? - Tristian
目前在使用Windows,但如果必要的话我可以切换到Linux。 - eliah winkler
3个回答

8

这是Notepad++的解决方案

在搜索模式中选择“正则表达式”。确保“.”匹配换行复选框未选中

查找内容: .{x}.+

替换为: (空)

如果您不想在替换后留下空行:

查找内容: .{x}.+(\r?\n|\n|$)

x替换为您选择的数字。


@eliahwinkler:您需要检查正则表达式选项。 - nhahtdh
我试过了。EditPlus 没有找到任何与您的字符串匹配的内容。 - eliah winkler
1
@eliahwinkler:这是给Notepad++用的。 - nhahtdh
无法找到文本:“.{200}.+(\r?\n|\n|$)”Notepad++和EditPlus同样适用。 - eliah winkler
@eliahwinkler:对我来说它运行良好。你需要正则表达式模式。并尝试升级到最新版本。 - nhahtdh

6

使用bash:

$ awk '{if (length($0) <= x) print $0; }'  myfyle.txt

这里的x表示长度。它将打印比x小的行。

更多awk好东西请参见Awk教程和介绍


这似乎不起作用,但点赞数表明它应该可以。我创建了一个具有非常长行的文件。然而,无论我放入多少x值,文件都不会改变。是否有什么遗漏? - Kvothe

1
这是 Editplus 版本 3.70 的解决方案。
如果您想保留长度小于等于 200 的行,则以下操作将删除任何长度为 201 或更长的行。
- 查找内容:^.{201,}.*\n - 将替换为空白 - 选择正则表达式
请注意 201 后面的逗号。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接