使用以下文字的文件jungle.txt ...
A lion sleeps in the jungle
A lion sleeps tonight
A tiger awakens in the swamp
The parrot observes
Wimoweh, wimoweh, wimoweh, wimoweh
......可以进行GREP搜索...
$ grep lion jungle.txt
...或SED搜索...
$ sed "/lion/p" jungle.txt
...找到模式的出现("狮子"在这种情况下)。
有一些简单的方法来获得一些返回的行吗?或者至少知道发现了超过1个?和往常一样,我先搜索了很多,但令人惊讶的是没有回答。
谢谢!
答案 0 :(得分:6)
grep
可以计算匹配的行数:
grep -c 'lion' file
输出:
2
语法:
-c
:抑制正常输出;而是为每个输入文件打印匹配行的计数。使用-v, - inverse-match选项(见下文),计算不匹配的行。 (-c由POSIX指定。)
答案 1 :(得分:2)
这可能适合你(GNU sed):
sed '/lion/!d' file | sed '$=;d'
或者如果您愿意:
sed -n '/lion/p' file | sed -n '$='
N.B。如果文件为空或第一个sed命令找不到任何内容,则第二个sed命令的结果为空。
答案 2 :(得分:2)
您可以使用awk
awk '/lion/ {a++} END {print a+0}'
2
但我想说最好的解决方案是Cyros使用grep -c 'lion' file
答案 3 :(得分:1)
只需将grep命令输出传递给wc- l
命令即可计算返回的行数
$ grep 'lion' file | wc -l
2
来自wc --help
-l, --lines print the newline counts