Bash 要捕获命令输出的grep计数吗

Bash 要捕获命令输出的grep计数吗,bash,Bash,我想使用以下命令计算单词错误的发生率:- mysql -B -u root -pxxxx -h abc -e show databases | grep -c "ERROR" mysql-B-u root-pxxx-h abc-e show数据库| grep-c“错误” 然而,我的理解是,它应该返回1,但它返回的是O 为什么? 也请让我知道mysql-B和-e的重要性 谢谢, Ruchir默认情况下,错误会转到标准错误(stderr),因此需要将其重定向到标准输出(通过2>&1)。在这种情况下,

我想使用以下命令计算单词错误的发生率:-

mysql -B -u root -pxxxx -h abc -e show databases | grep -c "ERROR" mysql-B-u root-pxxx-h abc-e show数据库| grep-c“错误” 然而,我的理解是,它应该返回1,但它返回的是O

为什么?

也请让我知道mysql-B和-e的重要性

谢谢,
Ruchir

默认情况下,错误会转到标准错误(stderr),因此需要将其重定向到标准输出(通过
2>&1
)。在这种情况下,grep可以处理它们:

mysql -B -u root -pxxxx -h abc -e show databases 2>&1 | grep -c "ERROR"

你能提供一个grep输入的例子吗?要理解
-B
-e
的重要性,请尝试
manmysql
mysql--help
。或者你可以使用
|&
作为'2>&1|`(bash4.0)的快捷方式,只需小心一行上的多个
错误被算作一个。是的,最好是
grep-o“ERROR”| wc-l