regex 正则表达式:删除包含“help”等的行

qij5mzcb  于 2022-12-05  发布在  其他
关注(0)|答案(7)|浏览(124)

我有一个很长的命令文档。使用记事本++或regex,我想删除所有包含“帮助”的行,包括keyboard_help等。
如何做到这一点?

fjnneemd

fjnneemd1#

使用Notepad++也可以执行此操作:

  • 转到搜索菜单,按Ctrl + F,然后打开 * 标记 * 选项卡。
  • 勾选 * 书签行 *(如果没有 * 标记 * 选项卡更新到当前版本)。
  • 输入您的搜索词,然后单击 * 标记全部 *
  • 包含搜索词的所有行都被标记为书签。
  • 现在进入菜单 * 搜索 * → * 书签 * → * 删除书签行 *
  • 好了,好了
fkaflof6

fkaflof62#

在Notepad++中执行此操作的另一种方法是在“查找/替换”对话框中使用正则表达式:

  • Ctrl + h打开查找替换对话框。
  • Find what:文本框中包含正则表达式:.*help.*\r?\n(如果文件没有Windows行尾,则\r是可选的)。
  • Replace with:文本框保留为空。
  • 确保搜索模式区域中的正则表达式单选按钮被选中。然后单击Replace All,瞧!所有包含搜索词help的行都被删除了。

kqqjbcuj

kqqjbcuj3#

使用grep轻松完成任务:

grep -v help filename

追加> newFileName以将输出重定向到新文件。

更新

为了更清楚地说明这一点,通常的行为是在屏幕上打印这些行。要将其通过管道传输到一个文件,可以使用>。因此,在此命令中:

grep -v help filename > newFileName

1.显然,grep调用grep程序

  1. -v是反转输出的标志。默认情况下,grep打印与给定模式匹配的行。使用此标志,它将打印 * 不 * 与模式匹配的行。
  2. help是要匹配的模式
  3. filename是输入文件的名称
  4. >将输出重定向到以下项
  5. newFileName将保存输出的新文件。
    正如你可能注意到的,你不会删除你的文件中的东西。grep将读取它,另一个文件将被保存,相应地修改。
kninwzqo

kninwzqo4#

使用正则表达式搜索:

^.*(help).*$
vohkndzv

vohkndzv5#

您可以使用sed:sed '/help/ d' < inputFile > outputFile

j7dteeu8

j7dteeu86#

如果您使用的是Windows,请尝试findstr。不需要第三方工具:

findstr /V /L "searchstring" inputfile.txt > outputfile.txt

它也支持正则表达式!只需阅读工具的帮助findstr /?
另外,如果你想处理很大的文件(比如400 MB的日志文件),文本编辑器不是很节省内存,所以,正如有人已经指出的,命令行工具是可行的。但是Windows上没有grep,所以...
我只是在一个1 GB的日志文件上运行了这个程序,实际上花了3秒钟。

js81xvg6

js81xvg67#

你必须分两步来做。

1.为具有该模式的行添加书签

CTRL + M 按钮。在查找内容文本框中,输入模式。然后选中标记为 * 书签行 * 的复选框。然后单击名为“* 全部标记 *"的按钮。关闭对话框。

2.删除那些书签行

按ALT + S(搜索)+ B(定位标记)+ R。按Enter。
您已完成。

相关问题