Fel*_*rez 32 grep regular-expression
根据 GNU 文档:
‘\<’ Match the empty string at the beginning of word.
‘\>’ Match the empty string at the end of word.
Run Code Online (Sandbox Code Playgroud)
我的 /etc/fstab 看起来像这样:
/dev/sdb1 /media/fresh ext2 defaults 0 0
Run Code Online (Sandbox Code Playgroud)
我希望 grep 为 /media/fresh 的存在返回 TRUE/FALSE。我尝试使用\<,\>但没有用。为什么?
egrep '\</media/fresh\>' /etc/fstab
Run Code Online (Sandbox Code Playgroud)
egrep '[[:blank:]]/media/fresh[[:blank:]]' /etc/fstab
Run Code Online (Sandbox Code Playgroud)
但它看起来更丑。
我的 grep 是 2.5.1
hee*_*ayl 35
\<并分别\>匹配单词开头和结尾的空字符串,并且只有单词组成字符是:
[[:alnum:]_]
Run Code Online (Sandbox Code Playgroud)
来自man grep:
Word-constituent characters are letters, digits, and the underscore.
Run Code Online (Sandbox Code Playgroud)
因此,您的 Regex 失败,因为/它不是有效的单词组成字符。
相反,由于周围有空格,您可以使用-w选项grep来匹配单词:
grep -wo '/media/fresh' /etc/fstab
Run Code Online (Sandbox Code Playgroud)
例子:
$ grep -wo '/media/fresh' <<< '/dev/sdb1 /media/fresh ext2 defaults 0 0'
/media/fresh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25691 次 |
| 最近记录: |