我有一个很长的命令文件。 使用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