我有一个很长的命令文档。使用notepad ++或regex,我想删除所有包含“help”的行,包括keyboard_help等。
如何做到这一点?
答案 0 :(得分:858)
使用Notepad ++
也可以"Mark"
标签。检查"Bookmark line"
(如果当前版本没有"Mark"
标签更新)。
输入您的搜索字词,然后点击"Mark All"
现在转到菜单"Search -> Bookmark -> Remove Bookmarked lines"
完成。
答案 1 :(得分:162)
在Notepad ++中执行此操作的另一种方法是在“查找/替换”对话框中使用正则表达式:
Ctrl + h 以打开查找替换对话框。
在Find what:
文本框中包含您的正则表达式:.*help.*\r?\n
(如果文件没有Windows行结尾,\r
是可选的。)
将Replace with:
文本框保留为空。
确保选中“搜索模式”区域中的“正则表达式”单选按钮。然后点击Replace All
瞧!包含搜索字词help
的所有行都已删除。
答案 2 :(得分:16)
使用grep
轻松完成任务:
grep -v help filename
附加> newFileName
以将输出重定向到新文件。
为了澄清它,正常的行为是在屏幕上打印线条。要将其传输到文件,可以使用>
。因此,在此命令中:
grep -v help filename > newFileName
grep
调用grep
程序,显然是-v
是反转输出的标志。通过defaulf,grep
打印与给定模式匹配的行。使用此标志,它将打印不匹配模式的行。help
是匹配的模式filename
是输入文件的名称>
将输出重定向到以下项目newFileName
新文件,其中将保存输出。您可能已经注意到,您不会删除文件中的内容。 grep
将读取它,另一个文件将被保存,并相应地进行修改。
答案 3 :(得分:13)
您可以使用sed:sed '/help/ d' < inputFile > outputFile
答案 4 :(得分:6)
如果您在Windows上 尝试findstr
,则无需第三方工具:
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
它也支持正则表达式!只需阅读该工具的帮助findstr /?
P.S。如果你想使用大的,巨大的文件(比如400mb日志文件),文本编辑器的内存效率不是很高,因此,正如有人已经指出的那样,命令行工具是可行的方法。但窗户上没有油灰,所以......
只需在1GB的日志文件上运行它,它花了3秒钟。
答案 5 :(得分:3)
使用正则表达式进行搜索:
^.*(help).*$