我需要在shell脚本中使用echo与grep,我能够使用它吗?
我尝试了这个,但是不正确:
echo Linux: grep "Linux" ~/workspace/ep-exercicios/m1/e2/intro-linux.html | wc -w
我需要展示消息:
Linux: (number of Linux word on the document).
例子:
Linux: 945
使用 grep
命令并加上 -o
选项:
printf "%s: %s\n" "Linux : " "$(grep -o "Linux" ~/workspace/ep-exercicios/m1/e2/intro-linux.html | wc -w)"
应该这样做
grep 的 man 页面说:
-o, --only-matching
仅打印匹配行中与模式匹配的(非空)部分,每个这样的部分显示在单独的一行。
grep -o | wc -l
的逻辑来自其他答案,可以在大多数系统上使用。
这里是另一种使用 awk
的机制。
awk 'END{print RS " : " NR-1}' RS=Linux ~/workspace/ep-exercicios/m1/e2/intro-linux.html
您可以通过以下轻微修改来实现。
echo "Linux: `grep "Linux" ~/workspace/ep-exercicios/m1/e2/intro-linux.html | wc -w`"
grep
扩展,并非所有Unix变体都可用。 - Jonathan Lefflergrep -o
而不是grep -c
,这样你就可以将Linux and Linux are the systems I use most
中的 Linux 计算两次。 - Walter A