我有一长串的命令。使用notepad++或regex,我想删除所有包含“帮助”的行,包括keyboard_help等。
如何做到这一点呢?
使用grep很容易:
grep
grep -v help filename
附加> newFileName将输出重定向到一个新文件。
> newFileName
为了澄清这一点,正常的行为是将行打印在屏幕上。要将其管道到文件,可以使用>。因此,在这条命令中:
>
grep -v help filename > newFileName
-v
help
filename
newFileName
正如您可能注意到的,您将不会删除文件中的内容。grep将读取它,并保存另一个文件,并相应地修改。
你可以使用sed: sed '/help/ d' < inputFile > outputFile来实现
sed '/help/ d' < inputFile > outputFile
这也可以用notepad++:
检查书签行(如果没有标记选项卡更新到当前版本)。
输入搜索词,单击马克所有
现在进入菜单搜索 →书签< em > < / em > →删除书签行
完成了。
在notepad++中执行此操作的另一种方法是在查找/替换对话框中使用regex:
Ctrl + h打开find replace对话框。
在Find what:文本框中包含你的正则表达式:.*help.*\r?\n(其中\r是可选的,如果文件没有Windows行结束符)。
Find what:
.*help.*\r?\n
\r
将Replace with:文本框保留为空。
Replace with:
确保“搜索模式”区域中的正则表达式单选按钮已被选中。然后点击Replace All,瞧!所有包含你的搜索词help的行已被删除。
Replace All
如果你是在Windows上,试试findstr。不需要第三方工具:
findstr
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
它也支持正则表达式!只要阅读工具的帮助findstr /?
findstr /?
P.S.如果你想处理大的巨大的文件(比如400 MB的日志文件),文本编辑器不是很节省内存,所以,就像有人已经指出的那样,命令行工具是可行的。但是Windows上没有grep,所以…
我刚刚在一个1gb的日志文件上运行了这个程序,实际上只花了3秒钟。
使用正则表达式搜索:
^.*(help).*$
你必须分两步完成。
1. 将具有该模式的行添加为书签
按CTRL + m按钮。在“查找内容”文本框中,输入模式。然后选中标记为书签线的复选框。然后点击名为“__abc2”的按钮。关闭对话框。
2. 删除那些书签行
按ALT + S(earch) + B(ookmark) + r,按“Enter”。
你完成了。