【发布时间】:2014-01-21 15:00:46
【问题描述】:
可以在 TextWrangler 中使用 grep 进行搜索
我想查找并替换以下单词:bauvol,但不是bauvolumen。
我尝试在搜索字段中输入^bauvol$,但这并没有成功,它没有找到任何东西,尽管这个词显然在那里。
我认为这是因为,在 grep 中,^和$signify 行的开始和结束,而不是一个字?!
【问题讨论】:
标签: grep textwrangler
可以在 TextWrangler 中使用 grep 进行搜索
我想查找并替换以下单词:bauvol,但不是bauvolumen。
我尝试在搜索字段中输入^bauvol$,但这并没有成功,它没有找到任何东西,尽管这个词显然在那里。
我认为这是因为,在 grep 中,^和$signify 行的开始和结束,而不是一个字?!
【问题讨论】:
标签: grep textwrangler
您想使用\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(文档结束,特别考虑最后一行之前的任何额外换行符)。
使用 grep 的 -w 选项(参见 grep man-page. 此选项将表达式作为单词进行搜索。
因此命令将是:
cat file.txt | grep -w bauvol
是的,^ 和 $ 用于行首和行尾。
【讨论】:
grep '\bbauvol\b' 可以完成这项工作。如果是,请告诉我,我会编辑答案。