我有一长串的命令。使用notepad++或regex,我想删除所有包含“帮助”的行,包括keyboard_help等。

如何做到这一点呢?


当前回答

在notepad++中执行此操作的另一种方法是在查找/替换对话框中使用regex:

按Ctrl + h弹出查找替换对话框。 在“查找内容:”文本框中包含您的正则表达式:.*help.*\r?\n(其中\r是可选的,如果文件没有Windows行结束符)。 将“替换为:”文本框保留为空。 确保“搜索模式”区域中的正则表达式单选按钮已被选中。然后单击“全部替换”,瞧!包含搜索词“帮助”的所有行已被删除。

其他回答

在notepad++中执行此操作的另一种方法是在查找/替换对话框中使用regex:

按Ctrl + h弹出查找替换对话框。 在“查找内容:”文本框中包含您的正则表达式:.*help.*\r?\n(其中\r是可选的,如果文件没有Windows行结束符)。 将“替换为:”文本框保留为空。 确保“搜索模式”区域中的正则表达式单选按钮已被选中。然后单击“全部替换”,瞧!包含搜索词“帮助”的所有行已被删除。

这也可以用notepad++:

转到搜索菜单,按Ctrl + F,并打开标记选项卡。 选中“书签”行(如果没有“标记”选项卡更新到当前版本)。 输入搜索词并单击“标记全部” 包含搜索词的所有行都被书签了。 现在转到菜单搜索→书签→删除书签行 完成了。

使用正则表达式搜索:

^.*(help).*$

你可以使用sed: sed '/help/ d' < inputFile > outputFile

如果你在Windows上,试试findstr。不需要第三方工具:

findstr /V /L "searchstring" inputfile.txt > outputfile.txt

它也支持正则表达式!只需阅读工具的帮助findstr /?

P.S.如果你想要处理巨大的文件(比如400 MB的日志文件),文本编辑器的内存效率不是很高,所以,就像有人已经指出的那样,命令行工具是最好的选择。但是Windows上没有grep,所以…

我刚刚在一个1gb的日志文件上运行了这个程序,实际上只花了3秒钟。