Shell范例2:统计指定单词出现次数

本文介绍了如何使用bash脚本统计用户输入的两个及以上单词在指定文件中的出现频率,展示了shift、grep、uniq和sed等技术的应用。通过实例执行,得出tinylab、linux和python在'index.html'文件中的词频统计结果。
#!/bin/bash
if [ $# -lt 1]; then
      echo "ERROR: you should input 2 words at least"
      exit -1
fi

FILE=$1
WORDS_NUM=$#-1

for n in $(seq $WORD_NUM)
do
	shift
	sed -e "s/[^a-zA-Z]/\n/g" $FILE | grep -v ^$ | sort | uniq -c | grep "^$1$"
done

# 执行
> ./statistic_words.sh index.html tinylab linux python
   175  tinylab
    43  linux
     3  python

说明:

  1. shift:把用户从命令行中传入的参数依次往后移动位置,并把当前参数作为第一个参数即$1
  2. grep -v “^$” : 过滤空行
  3. uniq -c : 去除重复行,并统计每个重复行的次数
  4. sed “s/a/b/g” test.txt : 在test.txt中查找a替换成b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值