[英]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来描述操作系统,这引起了一些争议。
记录将是:
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.