我有一份很长的命令文档。使用Notepad++ 或正则表达式,我想要删除所有包含“help”(包括keyboard_help等)的行。
如何实现?
Notepad++ 也可以实现这一功能:
勾选 Bookmark line(如果没有 Mark 标签页,请升级到最新版本)。
输入你要搜索的词语并点击 Mark All。
现在进入菜单 Search → Bookmark → Remove Bookmarked lines。
完成。
在Notepad++中另一种使用正则表达式进行替换的方法如下:
按Ctrl + h打开查找替换对话框。
在查找内容:
文本框中包含您的正则表达式:.*help.*\r?\n
(其中\r
是可选的,以防文件没有Windows行尾)。
将替换为:
文本框留空。
确保在搜索模式区域中选择了“正则表达式”单选按钮。然后单击全部替换
即可!所有包含搜索词help
的行都被删除了。
.*?
而不仅仅是.*
来进行非贪婪匹配。 - OozeMeister使用正则表达式进行搜索:
^.*(help).*$
\n\n
,替换为 ``(空) - Leo\r\n\r\n
并将其替换为空。 - FaranAiki使用 grep
完成的简单任务:
grep -v help filename
将> newFileName
添加到命令中以将输出重定向到新文件。
为了澄清,正常情况下会在屏幕上打印出行。要将其导入到文件中,可以使用>
。因此,在此命令中:
grep -v help filename > newFileName
grep
命令显然调用了 grep
程序。-v
是一个标志,用于反转输出。默认情况下,grep
打印与给定模式匹配的行。使用此标志,它将打印不匹配该模式的行。help
是要匹配的模式。filename
是输入文件的名称。>
重定向输出到后面的内容。newFileName
是保存输出结果的新文件名。正如你可能已经注意到的,你不会删除文件中的任何东西。grep
将读取它,并将根据需要修改并保存到另一个文件中。
grep
。无论如何,我建议你安装GNU grep,它肯定可以在Windows上工作,并且是一个非常有用的工具。 - sidyll>
),最终命令为 grep -v help filename > outputFileName
。 - sidyll你可以使用sed命令来实现:sed '/help/ d' < inputFile > outputFile
sed '/^help/ d'
可以起作用。^
表示行的开头。 - Tikhon Jelvissed
和grep
。 - Ooker如果你在 Windows 操作系统上,可以尝试使用 findstr
命令。不需要使用第三方工具:
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
它也支持正则表达式!只需阅读工具的帮助文档 findstr /?
P.S. 如果您想处理大型,巨大的文件(如400 MB的日志文件),文本编辑器不是非常内存高效,因此,正如有人已经指出的那样,命令行工具是正确的选择。但是在Windows上不存在grep,所以...
我刚在1 GB的日志文件上运行了这个命令,只用了3秒钟。
你需要分两步完成它。
1. 为具有该模式的行添加书签
按CTRL + M键。在“查找内容”文本框中输入模式。然后选择标记为书签行的复选框。接着点击名为 "全部标记" 的按钮。关闭对话框。
2. 删除这些已书签的行
按 ALT + S(earch) + B(ookmark) + R。然后按Enter键。
完成。
Ctrl + F
并点击“标记”选项卡,您可以直接按Ctrl + M
。 - Makesh