在grep中匹配一行与文字星号“*”匹配

时间:2009-10-17 03:13:15

标签: regex bash grep

尝试

$ echo "$STRING" | egrep "(\*)"

以及

$ echo "$STRING" | egrep '(\*)'

和无数其他变化。我只想匹配一行中包含文字星号的行。

5 个答案:

答案 0 :(得分:17)

尝试使用字符类

echo "$STRING" | egrep '[*]' 

答案 1 :(得分:5)

使用:

grep "*" file.txt

cat file.txt | grep "*"

答案 2 :(得分:5)

echo "$STRING" | fgrep '*'

fgrep用于匹配特殊字符。

答案 3 :(得分:1)

这是匹配文字星号的一种方法:

$ echo "*" | grep "[*]"
*
$ echo "*" | egrep "[*]"
*
$ echo "asfd" | egrep "[*]"
$ echo "asfd" | grep "[*]"
$ 

在括号中包装表达式通常可以让您轻松捕获单个特殊字符;例如,这也适用于右括号或连字符。

当它不在括号分组中时要小心:

$ echo "hi" | egrep "*"
hi
$ echo "hi" | grep "*"
$

答案 4 :(得分:1)

只需用反斜杠转义星号:

grep "\*"