在perl中执行grep总是返回并清空字符串

时间:2014-08-18 21:57:38

标签: perl grep

当我使用以下命令从CentOS 5.8中的命令行运行grep时,我得到了

grep -E "APPLIANCE=\"VPMX\"" /filepath/appliance_data.sh

结果

APPLIANCE="VPMX"; export APPLIANCE

当我运行以下命令perl

$out = `grep -E "APPLIANCE=\"VPMX\"" /filepath/appliance_data.sh`;
`echo "Output grep TV: $out" >> /tmp/debug`;
$ out变量始终为空字符串

如何获得与命令行grep相同的输出?

我尝试使用-q参数安静grep,并且还尝试使用< / dev / null,结果没有变化。

1 个答案:

答案 0 :(得分:3)

您需要转义反斜杠,因为backticks默认使用双引号字符串:

$out = `grep -E "APPLIANCE=\\"VPMX\\"" /filepath/appliance_data.sh`;

或者,您可以使用qx的单引号形式:

$out = qx'grep -E "APPLIANCE=\"VPMX\"" /filepath/appliance_data.sh';