昨天朋友发来一面试题:使用shell统计某单词出现的次数
以hill为例,当时的想法是
cat a.txt | grep '\bhill\b' | sed -e 's/\ /\n/' | wc -l
当时考虑的比较简单,且没有把grep
命令参数了解清除,导致写出了如下繁琐且很不完善的统计命令;想法是grep出所有单词以后再把空格替换为换行来统计,如果是双引号或者其他符号夹着某个单词就统计错误了.
今天写后台,想看一下某个接口出现的次数,看到grep -o
可以只显示过滤出来的单词并换行
cat a.txt | grep -o '\bhill\b' | wc -l # grep -o 只显示匹配的部分
cat a.txt | grep -w hill | wc -l # grep -w 匹配某个单词
这就简单了..还是命令掌握不熟练