我有一个很长的命令文件。 使用Notepad ++或regex,我想删除全部包含“help”的行,包括keyboard_help等。 正则表达式
如何才能作到这一点? 编辑器
在Notepad ++中执行此操做的另外一种方法是在“查找/替换”对话框中使用正则表达式: 工具
按Ctrl + h以显示查找替换对话框。 spa
在Find what:
文本框中包含正则表达式: .*help.*\\r?\\n
(其中\\r
.*help.*\\r?\\n
是可选的,以防文件没有Windows行结尾)。 命令行
将Replace with:
文本框保留为空。 日志
确保选中“搜索模式”区域中的“正则表达式”单选按钮。 而后单击Replace All
瞧! 包含搜索字词help
全部行都已删除。 code
若是您使用的是Windows ,请尝试使用findstr
。 不须要第三方工具: 内存
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
它也支持正则表达式! 只需阅读该工具的帮助findstr /?
。 input
PS若是你想处理庞大的文件(好比400 MB的日志文件),文本编辑器的内存效率就不高,所以,正若有人已经指出的那样,命令行工具是可行的方法。 但Windows上没有grep,因此...... string
我只是在1 GB的日志文件上运行它,它花了3秒钟。
使用正则表达式搜索:
^.*(help).*$
使用grep
轻松完成任务:
grep -v help filename
追加> newFileName
将输出重定向到新文件。
为了澄清它,正常的行为是在屏幕上打印线条。 要将其传输到文件,能够使用>
。 所以,在此命令中:
grep -v help filename > newFileName
grep
调用grep
程序 -v
是反转输出的标志。 经过defaulf, grep
打印出与给定模式匹配的行。 使用此标志,它将打印与模式不匹配的行。 help
是匹配的模式 filename
是输入文件的名称 >
将输出重定向到如下项目 newFileName
保存输出的新文件。 您可能已经注意到,您不会删除文件中的内容。 grep
将读取它,另外一个文件将被保存,相应地进行修改。
您能够使用sed: sed '/help/ d' < inputFile > outputFile
来完成此操做