如何在Unix shell脚本中使用echo和grep?

时间:2016-06-25 03:27:09

标签: bash shell unix grep echo

我需要在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

3 个答案:

答案 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来描述操作系统,这导致了一些   争议

记录将是:

  1. 是一个类似Unix的,主要是POSIX兼容的计算机操作系统(OS),它是在免费和开源软件开发和分发模型下组装的。
  2. 的定义组成部分
  3. kernel,一个操作系统内核,由Linus Torvalds于1991年10月5日首次发布。自由软件基金会使用名称GNU /
  4. 描述操作系统,这引起了一些争议
  5. Linux的发生次数是4 = =最后记录号 - 1。

答案 2 :(得分:0)

只需通过下面的略微修改即可实现。

回声" Linux:`grep" Linux" 〜/ workspace / ep-exercicios / m1 / e2 / intro-linux.html | wc -w`"