抑制grep输出但是在变量中捕获它

时间:2011-09-26 19:55:32

标签: bash grep

我正在尝试使用以下行:

WERRORS=`echo $VALPG | grep -q -s -o -m 1 '\<[0-9]* Errors'`

我想要的是grep的结果进入WERRORS变量而不是终端中的echo。 所以我使用-q,但是WERRORS是空的

3 个答案:

答案 0 :(得分:1)

如果grep发送任何错误消息,它们会转到错误输出,但反引号不会捕获。如果你在变量中需要这个输出(这有点问题,因为它经常被本地化),使用2&gt;&amp; 1重定向它:

WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors' 2>&1`

答案 1 :(得分:1)

WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors'`

答案 2 :(得分:0)

kent$  val=abcpc

kent$  a=$(echo $val|grep -o -m 1 -s 'pc')                                                                                               

kent$  echo $a
pc