我需要在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
答案 0 :(得分:3)
将grep
与-o
选项一起使用:
printf "%s: %s\n" "Linux : " "$(grep -o "Linux" ~/workspace/ep-exercicios/m1/e2/intro-linux.html | wc -w)"
应该这样做
grep 联系人说:
-o, - 仅匹配
仅打印匹配行的匹配(非空)部分,每个此类部分位于单独的输出行上。
答案 1 :(得分:3)
grep -o | wc -l
逻辑应该适用于今天的大多数系统。
这是使用awk
的另一种机制。
awk 'END{print RS " : " NR-1}' RS=Linux ~/workspace/ep-exercicios/m1/e2/intro-linux.html
逻辑:将文件拆分为记录,记录分隔符=" Linux"。最后,打印记录号。
例如包含这些内容的文件:
Linux是类似Unix的,主要是符合POSIX标准的计算机 系统(OS)在免费和开源软件模型下组装 发展和分配。 Linux的定义组件是 Linux内核,操作系统内核于10月5日首次发布, 1991年,Linus Torvalds。自由软件基金会使用该名称 用GNU / Linux来描述操作系统,这导致了一些 争议
记录将是:
Linux的发生次数是4 = =最后记录号 - 1。
答案 2 :(得分:0)
只需通过下面的略微修改即可实现。
回声" Linux:`grep" Linux" 〜/ workspace / ep-exercicios / m1 / e2 / intro-linux.html | wc -w`"