首页 文章

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

提问于
浏览
298

我有一个很长的命令文件 . 使用记事本或正则表达式,我想删除包含“帮助”的所有行,包括keyboard_help等 .

如何才能做到这一点?

6 回答

  • 140

    使用记事本也可以这样做

    • 转到搜索菜单Ctrl F并打开 "Mark" 选项卡 .

    • 检查 "Bookmark line" (如果当前版本没有 "Mark" 标签更新) .

    • 输入搜索字词,然后点击 "Mark All"

    • 包含搜索词的所有行都有书签 .

    • 现在转到菜单 "Search -> Bookmark -> Remove Bookmarked lines"

    • 完成 .

  • 12

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

    • Ctrl h打开查找替换对话框 .

    • Find what: 文本框中包含正则表达式: .*help.*\r?\n (其中 \r 是可选的,以防文件没有Windows行结尾) .

    • Replace with: 文本框保留为空 .

    • 确保选中“搜索模式”区域中的“正则表达式”单选按钮 . 然后单击 Replace All 并瞧!包含搜索字词 help 的所有行都已删除 .

    How-To Line Replace in N++

  • 790

    使用 grep 轻松完成任务:

    grep -v help filename
    

    附加 > newFileName 以将输出重定向到新文件 .


    更新

    为了澄清它,正常的行为是在屏幕上打印线条 . 要将其传送到文件,可以使用 > . 因此,在此命令中:

    grep -v help filename > newFileName
    

    显然,

    • grep 调用 grep 程序

    • -v 是反转输出的标志 . 通过defaulf, grep 打印与给定模式匹配的行 . 使用此标志,它将打印与模式不匹配的行 .

    • help 是要匹配的模式

    • filename 是输入文件的名称

    • > 将输出重定向到以下项目

    • newFileName 将保存输出的新文件 .

    您可能已经注意到,您不会删除文件中的内容 . grep 将读取它,另一个文件将被保存,相应地进行修改 .

  • 15

    您可以使用sed执行此操作: sed '/help/ d' < inputFile > outputFile

  • 3

    如果你是 on Windows 试试 findstr ,则不需要第三方工具:

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

    它支持正则表达式's too! Just read the tool'的帮助 findstr /?

    附:如果你想使用大的,巨大的文件(比如400mb日志文件),文本编辑器的内存效率不是很高,因此,正如有人已经指出的那样,命令行工具是可行的方法 . 但窗户上没有油灰,所以......

    只需在1GB的日志文件上运行它,它就花了3秒钟 .

  • 0

    使用正则表达式搜索:

    ^.*(help).*$

相关问题