繁体   English   中英

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

[英]How use echo with grep in a Unix shell script?

我需要在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手册页说:

-o,--only-matching
仅打印匹配行的匹配(非空)部分,每个这样的部分都在单独的输出行上。

grep -o | wc -l 如今,其他答案中的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内核,它是Linus Torvalds于1991年10月5日首次发布的操作系统内核。 自由软件基金会使用名称GNU / Linux来描述操作系统,这引起了一些争议。

记录将是:

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

Linux的出现次数是4 ==最后记录数-1。

只需在下面进行一些修改即可实现。

echo“ Linux:`grep” Linux“〜/ workspace / ep-exercicios / m1 / e2 / intro-linux.html | wc -w`”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM