将特定单词与grep-e匹配

将特定单词与grep-e匹配,grep,expression,Grep,Expression,我正在尝试使用grep只打印以特定图案开头的行。这里有一个例子 $SERVER_IP = 2.2.2.2 $SERVER_IP_PORT = 1111 $SERVER_IP_XXX = blablabla 我希望grep只打印SERVER_IP=2.2.2.2,而不打印其他三行 我尝试了下面的命令,但没有成功 grep -e "^\s*\$SERVER_IP$" 如果我尝试: grep -e "^\s*\$SERVER_IP" grep将打印所有三行 如何使用grep-e或egrep实现这

我正在尝试使用grep只打印以特定图案开头的行。这里有一个例子

$SERVER_IP = 2.2.2.2
$SERVER_IP_PORT = 1111
$SERVER_IP_XXX = blablabla
我希望grep只打印SERVER_IP=2.2.2.2,而不打印其他三行

我尝试了下面的命令,但没有成功

grep -e "^\s*\$SERVER_IP$"
如果我尝试:

grep -e "^\s*\$SERVER_IP"
grep将打印所有三行

如何使用grep-e或egrep实现这一点?多谢各位

grep -e "^\s*\$SERVER_IP\>"

\>
表示“单词边界”,或“单词字符与非单词字符相遇的地方。”

使用grep-e“^\$SERVER\u IP=”匹配以$SERVER\u IP=”开头的任何行,如果您有
awk
,您可以执行以下操作:

awk '$1=="$SERVER_IP"' file
$SERVER_IP = 2.2.2.2

=
仅当字段
1
与执行该操作的
$SERVER\u IP

完全一致时才使其匹配。非常感谢你。sed和其他使用reg exp的工具中的boundery一词是否相同?我以为是$
$
意思是“行尾”。单词边界表达式确实存在于所有POSIX正则表达式中。在PCREs中,它们使用
\b
。那么为什么这个表达式“^\s*\$DB['TYPE']\>”不能打印$DB['TYPE']”呢?有什么想法吗?