Linux centos7 高频词统计

news2025/1/12 19:56:25

如何统计文章中高频词?是我们经常遇到的问题,也是多场合考察个人知识整合能力的重要手段。招聘经典问题:linux中命令行统计文件中前10个高频词。

在讨论此问题中,主要应用到的知识点有:排序、去重、单词查询、grep、sed和awk使用。

本文分四种情况,逐一分析讨论。

一、单列多行单词

这种情况比较简单,不需要作分隔处理,直接进行单词排序与去重,再排序。

1.文本素材

cat  test1.txt

hello

world

you

hello

are

world

hello

2.命令

cat test1.txt |sort |uniq -c |sort -r

通过查看文件,所有单词都显示出来了。

sort  排序后,相同的单词排在一起(这是去重的必要条件)。

uniq –c 统计单词重复的次数

sort -r 指定顺序为从大到小

3.效果

二、第一列单词

这种情况比较简单,不需要作分隔处理,直接进行单词排序与去重,再排序。

1.文本素材

为了简单起见,假设文本素材中只包括小写字母和 ' '。

cat  test2.txt

hello a1234

world weripa

you  are working

hello alice

are   one

world two

hello six

2.命令

相较于第一类情况,统计难度加大。我们要解决的问题是如何获取第一列内容。获得第一列后就可以与前一类情况同样处理了。

a.cut

cat test2.txt |cut -d' ' -f1 |sort|uniq -c |sort –r

-f1 切割后仅保留第1列

b.grep

grep -Eo '^[[:alpha:]]+' test2.txt|sort|uniq -c|sort -r

grep -E 执行扩展正则,-o仅显示匹配单词

^[[:alpha:]]+  开头的第一个英语单词

c.awk

awk '{print $1}' test2.txt |sort|uniq-c |sort -r

'{print $1}' 仅输出文件第1列

3.效果

cut命令执行效果

    grep命令执行效果

awk命令执行效果

三、单词与空格

这种情况仅需要作分隔处理,把单个或多个空格替换为换行符。然后进行单词排序与去重,再排序。

1.文本素材

为了简单起见,假设文本素材中每个单词只由小写字母组成,单词间由一个或多个空格字符分隔。

cat  test3.txt

my name is shantong

my qq num is 845537614

my ip is 192.168.1.171

123 222 345

12345 789

my email is 845537614

my telephone num is 13523072436

servername is chaoxing

company site is hnqz

mmmmmmmm

192.168.89.115

2.命令

相较于前两类情况,此类问题难度也不大。我们仅需要把空格替换为换行符。所有单词变为一列内容后就可以与前两类情况同样处理。

a.tr

cat test3.txt| tr -s ' ' '\n'|sort|uniq -c |sort -r

tr -s ' ' '\n' #空格换行并清除空行

b.sed

sed  's/ /\n/g' test3.txt|sort|uniq -c |sort -r

sed  's/ /\n/g'

s表示替换,\n表示换行符,s/ /\n/将空格替换为换行符,最后的g标志表示全部替换

整理文本内容,使得每个单词占一行:

sed '/^$/d' #删除所有空行

3.效果

tr命令执行效果

sed命令执行效果

     删除空行后效果

四、任意文本

这种情况是最普通的。不作任何设定,对任意一个文件进行高频词统计。

主要思路就是:把文本进行分隔,仅保留单词。根据文本的常用格式,需要用不同的分隔符。

处理单词时,先排序,再去重,最后仍然要排序。

此类情况,需要把前面的命令综合起来,完成高频词统计

1.文本素材

cat test4.txt

123 222 345

my name is shantong

12345 789

my qq number is 36142959

my email is 36142959@qq.com

my ip is 192.168.1.141

my name is zhange

My telephone num is 13523072436

My qq number is 845537614

Server_name is Softeem

Company Site is http://www.pili-zz.net

MMMM1234

192.168.89.115

2.命令

相较于前三类情况,此类问题难度很大。我们不仅需要分隔单词,还需要把单词排序、去重和再排序。考虑到文本中单词较多,可以仅获取前5个单词。

a.sed awk

sed 's/[,.:;/!_@?]/ /g' test4.txt |awk '{for(i=1;i<=NF;i++)array[$i]++;}END{for(i in array) print i,array[i]}' |sort -nr -k 2 |head -5

b.awk

awk 'BEGIN{RS="[,.:;/!?]"} {for(i=1;i<=NF;i++)array[$i]++;}END{for(i in array) print i,array[i]}' test4.txt |sort -nr -k 2 |head -5

我们经常会说,awk是基于行列操作文本的,但如何定义“行”呢?这就是RS的作用。
  默认情况下,RS的值是\n。我们可以改变RS变量的值,为不同的分隔符。本案例中,RS的值是多个字符。

3.效果

sed awk

awk

小结

通过统计文本中的高频单词,综合应用命令cat cut tr sort uniq等,特别是linux三剑客grep、sed和awk。在实际应用中,情况会更复杂,可能需要编程处理。但掌握基本命令的各种应用十分重要,值得学习与巩固。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/917428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AWS解决方案日:Web 3业务安全方案

近日&#xff0c;AWS合作伙伴之Web3解决方案日在香港举办&#xff0c;多家科技公司专家和企业代表就WEB 3.0方案、AI创新和Web 3.0安全进行了探讨。顶象现场展示了Web 3.0业务安全解决方案。 NFT是Web 3.0典型场景之一。NFT基于区块链技术的非同质化代币&#xff0c;具有不可分…

行为型(七) - 访问者模式

一、概念 访问者模式&#xff08;Visitor Pattern&#xff09;&#xff1a;我们使用了一个访问者类&#xff0c;改变元素类的执行算法。通过这种方式&#xff0c;元素的执行算法可以随着访问者改变而改变。 优点&#xff1a;把业务操作跟具体的数据结构解耦。 二、实现 我们…

利用ANARCI标识CDR区域

brief 总有一些朋友丢给我一些抗体蛋白序列,希望我把抗体的框架区和高变区标识出来。 然后ANARCI 可以对抗蛋白序列的氨基酸进行编号和allign。 所以我想ANARCI可以解决这个问题。 安装 github开源软件: https://github.com/oxpig/ANARCI 也有网页版的: https://opig.st…

Quickstart: MinIO for Linux

单节点部署教程 1.安装Minio服务端 //wget下载二进制文件 wget https://dl.min.io/server/minio/release/linux-amd64/minio //赋予权限 chmod x minio //将minio可执行文件移入usr/local/bin目录下&#xff0c;使得minio可以全局执行 sudo mv minio /usr/local/bin/ 2.启动Mi…

React基础入门之虚拟Dom

React官方文档&#xff1a;https://react.docschina.org/ 说明 重要提示&#xff1a;本系列文章基础篇总结自尚硅谷课程&#xff0c;且采用类式写法&#xff01;&#xff01;最新的函数式组件写法见高级篇。 本系列文档旨在帮助vue同学更快速的学习react&#xff0c;如果你很…

OpenAI推出GPT-3.5Turbo微调功能并更新API;Midjourney更新局部绘制功能

&#x1f989; AI新闻 &#x1f680; OpenAI推出GPT-3.5Turbo微调功能并更新API&#xff0c;将提供GPT-4微调功能 摘要&#xff1a;OpenAI宣布推出GPT-3.5Turbo微调功能&#xff0c;并更新API&#xff0c;使企业和开发者能够定制ChatGPT&#xff0c;达到或超过GPT-4的能力。通…

如何使用装rancher安装k8s集群(k8s集群图形化管理工具)

前言 kubernetes集群的图形化管理工具主要有以下几种&#xff1a; 1、 Kubernetes Dashborad: Kubernetes 官方提供的图形化工具 2、 Rancher: 目前比较主流的企业级kubernetes可视化管理工具 3、各个云厂商Kubernetes集成的管理器 4、 Kuboard: 国产开源Kubernetes可视化管理…

异地容灾备份方式有哪些?异地容灾备份是什么意思

在当今的数字时代&#xff0c;数据已经成为公司的主要资产。然而&#xff0c;数据的丢失或损坏可能会给公司带来巨大的损失。因此&#xff0c;异地容灾备份已成为企业应考虑的因素。本文将详细介绍异地容灾备份的形式&#xff0c;以帮助企业更好地维护其重要数据。 什么是异地…

自定义QGraphcsItem旋转移动缩放组合

简单的记录下学习自定义QGraphicsItem 移动、旋转、缩放、组合。 1. QGraphicsView缩放 通过鼠标滚轮缩放整个视图 重写GraphicsView的wheelEvent(QWheelEvent *event)事件 // //QttGraphicsView::QttGraphicsView(QGraphicsScene* scene, QWidget* parent) : QGraphicsView(s…

经营决策垂直大模型——WinPlan经营大脑9月正式上线

经营决策产品提供商「数利得科技」(以下简称“数利得”)日前获近千万天使轮融资,由耀途资本独家投资。本轮融资资金将用于产品研发和算法模型搭建。 数利得成立于2022年,核心成员出身于阿里旗下钉钉,曾负责财税、业财一体、生态开放等业务,商业化经验丰富。在与众多企业…

如何快速查询京东快递并查询超时状态?

随着电子商务的蓬勃发展&#xff0c;快递成为了我们日常生活中不可或缺的一部分。而在众多快递公司中&#xff0c;京东快递以其高效、可靠的服务赢得了广大用户的青睐。然而&#xff0c;查询京东快递并同时查询快递的超时状态却一直是用户们头痛的问题。今天&#xff0c;我将为…

什么是Nginx HA?

什么是Nginx HA 1.1 什么是Nginx HA?1.2 高可用性的类型1.3 理解Nginx HA 示例1.4为什么高可用性很重要&#xff1f;1.5 高可用是如何实现的&#xff1f;1.6 如何支持高可用性?1.7 最佳实践&#xff1a;高可用性 1.1 什么是Nginx HA? 高可用性(HA) 是指系统通常通过使用内置…

水体测试积分球

水质分析包括观察分析、嗅味分析、仪器分析和化验分析等方法。排除分析过程中的影响因素&#xff0c;确保得到数据的准确性&#xff0c;保证分析质量&#xff0c;让人们深入了解水情况&#xff0c;合理利用水资源。在水质分析化验中&#xff0c;要对样品进行严格的控制&#xf…

DNDC模型---土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的应用

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现&#xff0c;“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会议上讲到&#xff0c;要把“双碳”纳入经济社会发展和生态文明建设整体布局。同时&#xff0c;提到要把减污降碳协同增效作为促…

新能源电动汽车有序充电,多场景充电解决方案-安科瑞黄安南

随着我国能源战略发展以及低碳行动的实施&#xff0c;电动汽车已逐步广泛应用&#xff0c;而电动汽车的应用非常符合当今社会对环保意识的要求&#xff0c;以及有效节省化石燃料的消耗。 由于其没有污染排放的优点以及政府部门的关注&#xff0c;电动汽车将成为以后出行的重要…

centos8安装mysql

1.首先用finalShell远程连接到服务器 2.如果服务器之前安装过mysql请先卸载,我这里是用yum安装的&#xff0c;现在通过yum去卸载 yum remove -y mysql find / -name mysql //找到残留的文件&#xff0c;再通过rm -rf去删除对应的文件3.下面正式开始安装 &#xff08;1&#…

【unity小技巧】Unity实现视差效果与无限地图(附git源码)

文章目录 前言下载素材1. 角色素材 环境搭建和人物移动视差效果无限背景源码参考完结 前言 如何提升你的画面感&#xff1f;动态的背景设计可以丰富我们的游戏效果&#xff0c;当你在游戏中行走或奔跑时&#xff0c;你将能够感受到身体在空间中的运动&#xff0c;仿佛真的置身…

成集云 | 抖店连接器客户静默下单催付数据同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 随着各品牌全渠道铺货&#xff0c;主播在平台上直播时客户下了订单后不能及时付款&#xff0c;第一时间客户收不到提醒&#xff0c;不仅造成了客户付款率下降&#xff0c;更大量消耗了企业的人力成本和经济。而成集云与钉钉深度合作&#xff0…

TouchGFX之DMA2D

Chrom-ART (DMA2D)图形加速器能够传输来自存储器的部分图像数据&#xff0c;并将其放入或先混合后再放入帧缓存。 Chrom-ART可从内部或外部存储器读取数据。 同样&#xff0c;它可以写入内部或外部存储器。 在绘制图形时可使用此功能&#xff0c;以显著提高显示性能&#xff0c…

云计算:探索现代科技的未来之云

文章目录 云计算基本概念云计算是什么注意 云计算的价值云计算的部署模式云计算的服务模式主流的云计算技术AWS简介AWS建立了广阔的合作伙伴生态 VMware简介VMware服务介绍 华为云简介华为云Stack模式 云计算基本概念 云计算是什么 云计算是一种模型&#xff0c;它可以实现随时…