【问题标题】:How to use grep to search for an exact word match in TextWrangler如何使用 grep 在 TextWrangler 中搜索完全匹配的单词
【发布时间】:2014-01-21 15:00:46
【问题描述】:

可以在 TextWrangler 中使用 grep 进行搜索

我想查找并替换以下单词:bauvol,但不是bauvolumen。 我尝试在搜索字段中输入^bauvol$,但这并没有成功,它没有找到任何东西,尽管这个词显然在那里。

我认为这是因为,在 grep 中,^$signify 的开始和结束,而不是一个字?!

【问题讨论】:

    标签: grep textwrangler


    【解决方案1】:

    您想使用\b 作为单词边界,正如@gromi08 所说:

    \bbauvol\b
    

    如果您想复制此单词的任何部分(以便您可以替换、修改、更改大小写等),通常最好将其包裹在 () 大括号中,以便您参考它们在替换框中:

    Find:
      (\bbauvol\b)
    
    Replace:
      <some_tag>\1</some_tag>
    

    您在找到结果后是否有任何具体的尝试(剪切、复制等)?

    【讨论】:

    • 好的,太好了,这行得通。我只是想换掉它。 \b 是特定于 grep 的标志吗?还是正则表达式?
    • \b 是一个正则表达式,您可以将它与命令行grep 以及TextWrangler 的内置grep 一起使用。如果您打开 TextWrangler 用户手册(Help->User Manual),页面下方的137 会显示其他有用的内容,例如\A(文档/文件的开头)、\B(与\b 相反,所以任何内容不是单词边界)、\Z\z(文档结束,特别考虑最后一行之前的任何额外换行符)。
    【解决方案2】:

    使用 grep 的 -w 选项(参见 grep man-page. 此选项将表达式作为单词进行搜索。

    因此命令将是:

    cat file.txt | grep -w bauvol
    

    是的,^$ 用于行首和行尾。

    【讨论】:

    • 好的,但我正在寻找在 TextWrangler 中使用 grep。有什么想法吗?
    • 我没有 TextWrangler,但也许 grep '\bbauvol\b' 可以完成这项工作。如果是,请告诉我,我会编辑答案。
    猜你喜欢
    • 2014-02-14
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    相关资源
    最近更新 更多