0

嗨,我想知道如何在 egrep 中使用用户定义的变量与或条件。

如果我使用以下命令,我将根据需要获得结果。

grep -w "Connect" audit.log.13766735635311490 | egrep 'USER=\"root\"|DB=\"CUST_PRESTIGEWW_DB\"' | wc -l
24416

现在我已经在下面完成并执行了相同的命令但得到了不同的结果

DATABASE=CUST_PRESTIGEWW_DB
grep -w "Connect" audit.log.13766735635311490 | egrep 'USER=\"root\"|DB=\"$DATABASE\"' | wc -l
40
grep -w "Connect" audit.log.13766735635311490 | egrep 'USER=\"root\"|DB=\""$DATABASE"\"' | wc -l
40
echo $DATABASE
CUST_PRESTIGEWW_DB

现在尝试更改变量值但没有奏效

DATABASE=`echo "\"CUST_PRESTIGEWW_DB\""`
echo $DATABASE
"CUST_PRESTIGEWW_DB"
grep -w "Connect" audit.log.13766735635311490 | egrep 'USER=\"root\"|DB=$DATABASE' | wc -l
grep -w "Connect" audit.log.13766735635311490 | egrep 'USER=\"root\"|DB='"$DATABASE" | wc -l
119956
grep -w "Connect" audit.log.13766735635311490 | egrep 'USER=\"root\"|DB="'$DATABASE'"' | wc -l
114

谁能帮我怎么做?

4

1 回答 1

1

利用:

... egrep 'USER="root"|DB='"$DATABASE" ...

您需要关闭单引号部分以使 bash expand $DATABASE。进一步注意,您不需要在单引号字符串中转义双引号。

于 2013-08-16T22:30:17.607 回答