如何在 Unix shell 脚本中使用带有 grep 的 echo ?

Eri*_*oia 6 unix bash shell grep echo

我需要在 shell 脚本中将 echo 与 grep 一起使用。我可以使用它吗?

我试过这个,但不正确:

echo Linux: grep "Linux" ~/workspace/ep-exercicios/m1/e2/intro-linux.html | wc -w
Run Code Online (Sandbox Code Playgroud)

我需要显示消息:

Linux: (number of Linux word on the document).
Run Code Online (Sandbox Code Playgroud)

例子:

Linux: 945
Run Code Online (Sandbox Code Playgroud)

ani*_*ane 3

grep -o | wc -l其他答案的逻辑应该适用于当今的大多数系统。

这是使用的另一种机制awk

awk 'END{print RS " : " NR-1}' RS=Linux ~/workspace/ep-exercicios/m1/e2/intro-linux.html
Run Code Online (Sandbox Code Playgroud)

逻辑:将文件分割为记录,记录分隔符=“Linux”。最后打印记录编号。


例如,对于包含这些内容的文件:

Linux 是一个类 Unix 且大部分符合 POSIX 的计算机操作系统 (OS),在自由和开源软件开发和分发的模式下组装。Linux 的定义组件是 Linux 内核,这是一个操作系统内核,由 Linus Torvalds 于 1991 年 10 月 5 日首次发布。自由软件基金会使用GNU/Linux这个名称来描述操作系统,这引起了一些争议

记录将是:

  1. 是一个类 Unix 且大部分兼容 POSIX 的计算机操作系统 (OS),在自由和开源软件开发和分发的模式下组装。的定义组件
  2. 是个
  3. kernel,一个操作系统内核,由 Linus Torvalds 于 1991 年 10 月 5 日首次发布。自由软件基金会使用名称 GNU/
  4. 来描述操作系统,这引起了一些争议

Linux 的出现次数为 4 == 最后一条记录号 - 1。