正则表达式:删除包含“帮助”等的行

我有一个很长的命令文件。 使用Notepad ++或regex,我想删除全部包含“help”的行,包括keyboard_help等。 正则表达式

如何才能作到这一点? 编辑器


#1楼

在Notepad ++中执行此操做的另外一种方法是在“查找/替换”对话框中使用正则表达式: 工具

  • 按Ctrl + h以显示查找替换对话框。 spa

  • Find what:文本框中包含正则表达式: .*help.*\\r?\\n (其中\\r .*help.*\\r?\\n是可选的,以防文件没有Windows行结尾)。 命令行

  • Replace with:文本框保留为空。 日志

  • 确保选中“搜索模式”区域中的“正则表达式”单选按钮。 而后单击Replace All瞧! 包含搜索字词help全部行都已删除。 code

如何在N ++中替换行


#2楼

若是您使用的是Windows ,请尝试使用findstr 。 不须要第三方工具: 内存

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

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

PS若是你想处理庞大的文件(好比400 MB的日志文件),文本编辑器的内存效率就不高,所以,正若有人已经指出的那样,命令行工具是可行的方法。 但Windows上没有grep,因此...... string

我只是在1 GB的日志文件上运行它,它花了3秒钟。


#3楼

使用正则表达式搜索:

^.*(help).*$

#4楼

使用grep轻松完成任务:

grep -v help filename

追加> newFileName将输出重定向到新文件。


更新

为了澄清它,正常的行为是在屏幕上打印线条。 要将其传输到文件,能够使用> 。 所以,在此命令中:

grep -v help filename > newFileName
  1. 显然grep调用grep程序
  2. -v是反转输出的标志。 经过defaulf, grep打印出与给定模式匹配的行。 使用此标志,它将打印与模式匹配的行。
  3. help是匹配的模式
  4. filename是输入文件的名称
  5. >将输出重定向到如下项目
  6. newFileName保存输出的新文件。

您可能已经注意到,您不会删除文件中的内容。 grep将读取它,另外一个文件将被保存,相应地进行修改。


#5楼

您能够使用sed: sed '/help/ d' < inputFile > outputFile来完成此操做

相关文章
相关标签/搜索