博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用shell显示wordcount功能
阅读量:5780 次
发布时间:2019-06-18

本文共 998 字,大约阅读时间需要 3 分钟。

  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 argumentsif [ $# -ne 1 ]then    echo "Usage: $0 filename"    exit -1fi# realize word countprintf "%-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,参考网址为:。统计该文本的每个单词出现的数量,可以运行命令

./wordcount.sh road.txt

运行结果如下:

这里只显示了前面几个单词的出现数量。

  再测试一个文本speech.txt,里面的内容是罗斯福总统二战期间对日本宣战的演讲,具体网址为: .运行命令

./wordcount.sh speech.txt

运行结果如下:

这里只显示了前面几个单词的出现数量。

  本次程序编写主要参考《Linux脚本攻略》。
  本次分享到此结束,欢迎大家交流~~

转载地址:http://atuyx.baihongyu.com/

你可能感兴趣的文章
花钱删不完负面消息
查看>>
JBPM之JPdl小叙
查看>>
(step6.1.5)hdu 1233(还是畅通工程——最小生成树)
查看>>
Membership三步曲之进阶篇 - 深入剖析Provider Model
查看>>
huffman编码——原理与实现
查看>>
Linux移植随笔:终于解决Tslib的问题了【转】
查看>>
MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)
查看>>
【leetcode】Longest Common Prefix
查看>>
前端优化及相关要点总结
查看>>
Vue 列表渲染
查看>>
struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
查看>>
25 个精美的手机网站模板
查看>>
C#反射实例应用--------获取程序集信息和通过类名创建类实例
查看>>
VC中实现文字竖排的简单方法
查看>>
会话标识未更新
查看>>
【设计模式】数据访问对象模式
查看>>
Tomcat8 配置Oracle11g数据源
查看>>
【PHP面向对象(OOP)编程入门教程】8.构造方法__construct()与析构方法__destruct()
查看>>
阿里架构师:程序员必须掌握的几项核心技术能力
查看>>
程序员常用的六大技术博客类
查看>>