【发布时间】:2011-08-18 02:11:57
【问题描述】:
我有很长的命令文档。使用记事本++或正则表达式,我想删除所有包含“帮助”的行,包括keyboard_help等。
如何做到这一点?
【问题讨论】:
我有很长的命令文档。使用记事本++或正则表达式,我想删除所有包含“帮助”的行,包括keyboard_help等。
如何做到这一点?
【问题讨论】:
使用正则表达式搜索:
^.*(help).*$
【讨论】:
\n\n,替换为``(无)
\r\n\r\n 并将其替换为空。
如果您在 Windows 上,请尝试 findstr。不需要第三方工具:
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
它也支持正则表达式!只需阅读工具的帮助findstr /?。
附:如果您想处理大的巨大文件(如 400 MB 日志文件),文本编辑器的内存效率不是很高,因此,正如有人已经指出的那样,命令行工具是走。但是 Windows 上没有 grep,所以...
我只是在一个 1 GB 的日志文件上运行它,实际上只用了 3 秒。
【讨论】:
Notepad++ 也可以做到这一点:
检查书签行(如果没有标记标签更新到当前版本)。
输入您的搜索词并点击全部标记
现在进入菜单搜索 → 书签 → 删除书签行
完成。
【讨论】:
BOOKMARK LINE 在这里很重要,否则它将不起作用!。
在 Notepad++ 中执行此操作的另一种方法是全部在“查找/替换”对话框中并使用正则表达式:
Ctrl + h 调出查找替换对话框。
在 Find what: 文本框中包含您的正则表达式:.*help.*\r?\n(如果文件没有 Windows 行结尾,\r 是可选的)。
将Replace with: 文本框留空。
确保选中搜索模式区域中的正则表达式单选按钮。然后点击Replace All,瞧!包含您的搜索词 help 的所有行均已删除。
【讨论】:
grep 的简单任务:
grep -v help filename
附加 > newFileName 以将输出重定向到新文件。
为了澄清这一点,正常的行为是在屏幕上打印线条。要将其通过管道传输到文件,可以使用>。因此,在这个命令中:
grep -v help filename > newFileName
grep 显然调用了grep 程序-v 是反转输出的标志。默认情况下,grep 打印与给定模式匹配的行。使用此标志,它将打印 不 匹配模式的行。help 是要匹配的模式filename 是输入文件的名称> 将输出重定向到以下项目newFileName 将保存输出的新文件。您可能已经注意到,您不会删除文件中的内容。 grep 将读取它并保存另一个文件,并进行相应的修改。
【讨论】:
grep。无论如何,我建议你安装 GNU grep,它肯定可以在 Windows 上运行,而且它是一个非常有用的工具。
>),最终命令为 grep -v help filename > outputFileName
您可以使用 sed 执行此操作:sed '/help/ d' < inputFile > outputFile
【讨论】:
sed '/^help/ d' 应该可以。 ^ 代表行的开头。
sed 和 grep