我有一个很长的命令文件。 使用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
- 显然
grep
调用grep
程序 -
-v
是反转输出的标志。 通过defaulf,grep
打印出与给定模式匹配的行。 使用此标志,它将打印与模式不匹配的行。 -
help
是匹配的模式 -
filename
是输入文件的名称 -
>
将输出重定向到以下项目 -
newFileName
保存输出的新文件。
您可能已经注意到,您不会删除文件中的内容。 grep
将读取它,另一个文件将被保存,相应地进行修改。
#5楼
您可以使用sed: sed '/help/ d' < inputFile > outputFile
来完成此操作
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3175510