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

ⅰ亾dé卋堺 提交于 2020-02-28 00:49:40

我有一个很长的命令文件。 使用Notepad ++或regex,我想删除所有包含“help”的行,包括keyboard_help等。

如何才能做到这一点?


#1楼

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

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

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

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

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


#2楼

如果您使用的是Windows ,请尝试使用findstr 。 不需要第三方工具:

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

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

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

我只是在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来完成此操作

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!