利用shell显示wordcount功能
Shell脚本编程是Linux系统最为核心的技术之一,它能够利用简单的命令来实现一些复杂的功能,同时,由于Linux提供了很多文本处理命令,如grep(grep family), tr, sed, awk等, 一旦熟练掌握这些命令,那么你在Linux系统中处理文本就会得心应手。
本文将展示如何利用Shell来实现WordCount功能。
首先先看wordcount.sh的代码,用来实现WordCount功能。
#!/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%s\n" "Word" "Count" cat $1 | tr 'A-Z' 'a-z' | \ egrep -o "\b[[:alpha:]]+\b" | \ awk '{ count[$0]++ } END{ for(ind in count) { printf("%-14s%d\n",ind,count[ind]); } }' | sort -k2 -n -r
在上述代码中,$1参数为你输入的文本,利用cat命令读取其内容,利用tr命令将所有的大写字母转换为小写字母,再利用egrep命令抓取文本中的所有单词,并逐项输出,最后利用awk命令和关联数组来实现word count功能,并按照出现的数量递减输出。
接着就是测试啦~~
首先是road.txt文件,里面是美国诗人 Robert Frost写的诗歌 The Road Not Taken,参考网址为:https://www.poets.org/poetsor...。统计该文本的每个单词出现的数量,可以运行命令
./wordcount.sh road.txt
运行结果如下:
这里只显示了前面几个单词的出现数量。
再测试一个文本speech.txt,里面的内容是罗斯福总统二战期间对日本宣战的演讲,具体网址为: http://www.historyplace.com/s... .运行命令
./wordcount.sh speech.txt
运行结果如下:
这里只显示了前面几个单词的出现数量。
本次程序编写主要参考《Linux脚本攻略》。
本次分享到此结束,欢迎大家交流~~
相关推荐
huha 2020-10-16
laisean 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
JohnYork 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16
laisean 2020-09-27
flycappuccino 2020-09-27
liguojia 2020-09-27
wangzhaotongalex 2020-09-22
流年浅滩 2020-10-23
liujianhua 2020-10-22
woaimeinuo 2020-10-21
tufeiax 2020-09-03
laisean 2020-09-01
vvu 2020-09-16
libao 2020-09-16
Yyqingmofeige 2020-08-18
zhushixia 2020-08-17