一行代码统计文本中指定字符串出现的次数

结论先行,附上最终的一行代码

grep -oE '字符串1|字符串2|字符串3' 文本.txt|wc -l

下面开始逐一梳理思路

  1. 创建测试文本
    以《三国演义》中的虎牢关部分作为样例,创建一个虎牢关.txt文本文档
[root@cloudmyc sanguo]# cat 虎牢关.txt
话说虎牢关下,诸侯云集.天下豪杰,奉先神威。两军阵前,吕布身着红锦百花袍,身披兽面吞头连环铠。手持方天画戟,坐下嘶风赤兔马。真是人中吕布,马中赤兔。布大喝一声“吕布在此,谁人前来送死!”话音未落,幽州公孙瓒,舞动铁槊直取吕布,前去送死。吕布挥戟,战不三合,公孙招架不住,拨马败退。吕布纵马直追,危急关头.忽闻一声怒吼,“三姓家奴吕布休要猖狂,燕人张翼德在此!”   诸侯军阵之中,一将飞出,圆睁环眼,,怒声如雷,手持丈八蛇矛,正是张飞张翼德! 吕布舍弃公孙,疾取张飞。二将大战八十余合,风起云涌,势震八方。诸侯喝彩,声盖九天!士兵看得痴呆,鼓手擂得手酸! 当时恼了虎将关云长,瞪起丹凤眼,竖起卧蚕眉。手提八十二斤青龙偃月刀,催马上前,夹击吕布。刹那间,刀若闪电,矛似流星,奉先画戟,更犹若猛虎搜山,神龙出海。时有兵刃撞击,响彻八方,声闻于天!关张奋力,三将酣战五十回合,犹然战不倒吕布。   沧海横流,方显英雄本色。乱世之中,才知豪杰笑傲。   三人战得难分难解之时,诸侯军中,奋起一将,手持雌雄双剑。刘备刘玄德,一马当先,前来助战。三英合力攻杀,意欲将吕布斩于军前!   虽吕布雄勇无双,无奈独力难支。十余回合之后,已然遮架不住。画戟带风,急取刘备,玄德急忙闪躲,再凝神看时,奉先已然纵马杀出。正是放开玉枷脱蛟龙,反身飞上虎牢关。   虎牢关前,神将天威。桃园三英,兄弟扬名。

  1. 在测试文本中选出指定字符串
    当前想统计虎牢关.txt文本中“吕布”这个人名出现的次数,可以先通过grep -o '吕布' 虎牢关.txt代码,将“吕布”二字每出现一次,就输出一行
[root@cloudmyc sanguo]# grep -o '吕布' 虎牢关.txt
吕布
吕布
吕布
吕布
吕布
吕布
吕布
吕布
吕布
吕布
吕布
吕布
  1. 同时输出多个字符串
    当前不仅想统计“吕布”出现的次数,还想统计“三姓家奴”出现的次数,可以通过grep -oE '吕布|三姓家奴' 虎牢关.txt来实现
[root@cloudmyc sanguo]# grep -oE '吕布|三姓家奴' 虎牢关.txt
吕布
吕布
吕布
吕布
吕布
吕布
三姓家奴
吕布
吕布
吕布
吕布
吕布
吕布
  1. 统计第3步输出的结果有多少行
    其实第3步结束后,就已经是将指定字符串按出现的次数,分行展示了出来,所以此时只需要计算行数就可以了,可以通过grep -oE '吕布|三姓家奴' 虎牢关.txt | wc -l来实现
[root@cloudmyc sanguo]# grep -oE '吕布|三姓家奴' 虎牢关.txt | wc -l
13

这样就表示,在虎牢关.txt文件内,“吕布”和“三姓家奴”这两个词一共出现了13次

  1. 看看罗贯中在《三国演义》里更偏爱谁
    从网上下载一份《三国演义》的txt文本,并依次统计曹操、刘备、孙权、诸葛亮、关羽、张飞、赵云出现的次数,需要说明的是此处统计的方法是根据名称以及字来计数,比如统计曹操,就会是统计“曹操”和“孟德”两个词出现的次数,当然这也不是很全面,毕竟像“曹丞相”也是指的曹操,但本来就是娱乐一下,太过全面倒也耗费脑细胞,那么各位看官请猜一猜,上述几个人物,谁出现的次数最多呢?
    在这里插入图片描述
    下面来揭晓答案啦
人物次数
曹操970
刘备2110
孙权333
诸葛亮1847
关羽452
张飞422
赵云412

不得不说,刘皇叔是真的强啊
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟意昶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值