利用shell显示wordcount功能
??Shell脚本编程是Linux系统最为核心的技术之一,它能够利用简单的命令来实现一些复杂的功能,同时,由于Linux提供了很多文本处理命令,如grep(grep family),tr,sed,awk等, 一旦熟练掌握这些命令,那么你在Linux系统中处理文本就会得心应手。 #!/bin/bash # filename: wordcount.sh # usage: word count # handle position arguments if [ $# -ne 1 ] then echo "Usage: $0 filename" exit -1 fi # realize word count printf "%-14s%sn" "Word" "Count" cat $1 | tr 'A-Z' 'a-z' | egrep -o "b[[:alpha:]]+b" | awk '{ count[$0]++ } END{ for(ind in count) { printf("%-14s%dn",ind,count[ind]); } }' | sort -k2 -n -r 在上述代码中,$1参数为你输入的文本,利用cat命令读取其内容,利用tr命令将所有的大写字母转换为小写字母,再利用egrep命令抓取文本中的所有单词,并逐项输出,最后利用awk命令和关联数组来实现word count功能,并按照出现的数量递减输出。 ./wordcount.sh road.txt 运行结果如下:
这里只显示了前面几个单词的出现数量。 ./wordcount.sh speech.txt 运行结果如下:
这里只显示了前面几个单词的出现数量。??本次程序编写主要参考《Linux脚本攻略》。??本次分享到此结束,欢迎大家交流~~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |