在SO上找不到这个。我在终端上执行了如下命令:
>> grep -Rl "curl" ./
这将显示出现关键字curl的文件列表。我想数一下文件的数量。我能想到的第一种方法,是计算终端输出的行数。我该怎么做呢?
在SO上找不到这个。我在终端上执行了如下命令:
>> grep -Rl "curl" ./
这将显示出现关键字curl的文件列表。我想数一下文件的数量。我能想到的第一种方法,是计算终端输出的行数。我该怎么做呢?
把EaterOfCode的注释放在这里作为答案。
Grep本身也有-c标志,它只返回计数
因此,命令和输出看起来像这样。
$ grep -Rl "curl" ./ -c
24
编辑:
虽然这个答案可能更短,因此似乎比公认的答案(使用wc)更好。我不再同意这种说法了。我觉得记住你可以通过管道到wc -l来计数行数更有用,因为你可以在其他程序中使用它,而不是grep。
管道'wc'可能会更好,如果最后一行以换行符结束(我知道在这种情况下,它会) 但是,如果最后一行不以换行符结束,'wc -l'将返回假结果。
例如:
$ echo "asd" | wc -l
将返回1并且
$ echo -n "asd" | wc -l
将返回0
我经常使用grep <任何> -c
$ echo "asd" | grep "^.*$" -c
1
$ echo -n "asd" | grep "^.*$" -c
1
这比wc -l返回的结果更接近现实。