正则表达式:删除包含的行

时间:2011-05-03 22:06:46

标签: regex notepad++

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

如何做到这一点?

6 个答案:

答案 0 :(得分:858)

使用Notepad ++

也可以
  • 转到搜索菜单 Ctrl + F 并打开"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的所有行都已删除。

How-To Line Replace in N++

答案 2 :(得分:16)

使用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新文件,其中将保存输出。
  7. 您可能已经注意到,您不会删除文件中的内容。 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).*$