主题:Linux基本命令面试题:统计文件a.txt中“每个单词”的重复出现次数

[请教]统计文件a.txt中“每个单词”的重复出现次数?若该文件大到几个G又该如何处理?

方案一:

#!/bin/sh

#定义源文件和临时文件
srcfile=word.txt
tempfile_words=tempfile_words
tempfile_words_uniq=tempfile_words_uniq

#取出所有单词,存入临时文件$tempfile_words,一行一个单词
#去除$tempfile_words中重复单词,并把换行符替换为空格,存入临时文件$tempfile_words_uniq
tr "[\015]" "[\n]"<$srcfile|sed 's/[^0-9a-zA-Z ]*\([0-9a-zA-Z]*\)[^0-9a-zA-Z]*/\1\n/g'|sed '/^$/d'>$tempfile_words
sort $tempfile_words|uniq|tr "[\n]" "[ ]">$tempfile_words_uniq

#遍历所有单词,统计数目
words=$(cat $tempfile_words_uniq)
for word in $words
do
word_num=$(grep $word $tempfile_words|wc -l)
echo $word $word_num
done

方案二:

tr -s "\t| " "\n" <word.txt|sort|uniq -c
Linux Shell脚本工具箱:55个实战案例从入门到精通 Shell脚本是Linux系统管理与自动化运维的核心工具,通过将重复性命令行操作封装为可执行脚本,能够显著提升工作效率与系统可靠性。其工作原理基于Bash解释器,通过组合系统命令、控制结构和文本处理工具,实现复杂任务的自动化。在技术价值层面,Shell脚本以其轻量级、无需编译、直接调用系统能力的特性,成为DevOps、系统运维和数据处理领域的必备技能。典型应用场景包括批量文件处理、系统状态监控、日志分析、定时任务调度以及自动化部署流程。本文聚焦于构建一个即拿即用、安全可靠的Shell脚本工具箱,涵盖从基础语 阅读详情

相关推荐

百度2016研发工程师笔试题解析:C/C++基础与算法考点全拆解

在研发工程师的求职考核中,计算机基础能力始终是衡量人才的核心标尺。从C/C++的指针与内存管理,到数据结构与算法中的数组、链表、二叉树与动态规划,再到操作系统、Linux基础与TCP/HTTP协议,这些看似分散的知识点,实则共同构成了一套完整的底层能力体系。理解数组与指针的差异、堆栈内存的分配原理,以及各类算法的状态转移思想,不仅能帮助开发者快速定位线上性能问题,更能提升在真实工程场景中的综合推理能力。无论是准备大厂笔试的应届生,还是想夯实基础的从业者,都需要从这些核心技术概念出发,掌握其背后的运行机制与工

weixin_34211761的博客 628

Linux通过日志文件统计IP访问次数排序,取前n条

日志内容如下: 1.119.144.106 - - [03/Jan/2019:12:47:50 +0800] image.aa.com "GET /image/public/index.php/index/uploads/handle HTTP/1.1 0.001" 500 5 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (...

凯 4341

Linux Shell编程示例:统计文件中特定单词的出现次数

通过这个简单的示例,你可以看到如何使用Shell编程来处理文本文件并实现一些常见的任务。你可以根据自己的需求修改和扩展这个脚本,以适应更复杂的场景。希望这个示例能帮助你更好地理解Linux Shell编程的基础知识。在Linux Shell中,我们可以使用各种命令和技术来处理文本文件。这里,我们将演示如何编写一个脚本来统计文件中特定单词的出现次数。我们将以一个简单的例子开始,然后逐步扩展它。我们的目标是统计文件中单词"example"出现的次数。让我们从一个简单的文本文件开始,假设文件名为。

HackWhisper的博客 669

linux shell 统计词频,shell之词频统计

写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。为了简单起见,你可以假设:words.txt只包括小写字母和 ' ' 。每个单词只由小写字母组成。单词间由一个或多个空格字符分隔。示例:假设 words.txt 内容如下:the day is sunny the the thethe sunny is is你的脚本应当输出(以词频降序排列):the 4is 3su...

weixin_39636707的博客 470

python二级和期末复习题

目录标题导读第一题第二题第三题面试题资料领取 导读 第一题 【问题描述】编写一个程序,实现文件的复制。程序的任务是将当前目录下filecopy.in文件复制成filecopy.out。 【输入文件】输入文件为当前目录下的filecopy.in。其内容由任意文本构成。 【输出文件】输出文件为当前目录下的filecopy.out。 【样例输入】若输入filecopy.in文件内容如下: hello world1!# hello world2!# hello world3!# hello world4!# 【样

肥学的博客 2314

大厂Python自动化测试面试题合集

题目:函数的作用是什么?调用函数的语法?答案:将独立功能代码封装成模块,复用代码;函数名(实参)。题目:函数 return 作用是什么?无 return 时函数返回什么?多返回值底层是什么类型?答案:返回函数执行结果;无 return 默认返回 None;return x,y,z 底层自动封装为元组。题目:函数四大参数类型分别是什么?定义顺序要求?答案:必选参数、默认参数、可变位置 * args、命名关键字、可变关键字 **kwargs;顺序:必选→默认→*args→命名关键字→**kwargs。

悦分享 104

linux如何统计某一个文件在整个系统中出现的次数

find -name filename 查找当前目录下filename 出现的次数 wc -l filename 统计某文件的行数 | 管道 三者结合 [root@wz /]# find / -name t | wc -l 16 该命令查询“/“目录下所有的t文件,并通过“|”管道,将输出作为wc -l的输入,统计出系统所有t文件的数量 这里可能有疑问 wc不是统计某文件的...

qq_38522268的博客 1277

《Python3案例和总结》-专栏介绍和目录

本专栏专注于Python基础和进阶的系统讲解,逐步深入实际应用场景到python高级特性,让你轻松学会用Python解决各种实际问题。不管是零基础还是有经验的开发,相信都能从本专栏获益。

数据知道的博客 1万+

shell:sort(将文本文件内容加以排序)

sort顾名思义就是排序 -b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -m 将几个排序好的文件进行合并。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -u 意味着是唯一的(unique),输出的结果是去完重了的。 -o<输出文件> 将排序后

李白 4156

馈电网络设计:通过Smith圆图工具完成微带线到同轴探针的阻抗匹配

Smith圆图通过图形化阻抗变换路径,显著简化微带线到同轴探针的匹配设计。设计需结合理论计算(微带线阻抗公式、探针等效模型)、圆图操作(串联/并联元件移动规则)及仿真验证,最终实现宽带低反射匹配。

百态·数智思维 | 聚焦大数据、量化与未来AI 1106

微信小程序订阅消息实战:如何绕过长期订阅限制实现多次发送(附PHP代码)

本文针对微信小程序开发者无法获取长期订阅消息权限的痛点,提供了一套完整的实战解决方案。通过深入剖析一次性订阅与长期订阅的规则差异,结合巧妙的交互设计、稳健的PHP服务端发送引擎(含高并发处理与失败重试机制)以及授权池管理等高级策略,帮助开发者在合规前提下,构建高可用的消息推送系统,有效提升通知触达率与用户体验。

weixin_29008805的博客 620

面试题:使用shell统计一个文件里面单词的出现频率

现有文件words.txt内容如下: Spark Hive Hdfs Spark Hdfs Spark Hive Yarn 统计该文件每个单词出现的频率(按照词频降序输出): 结果: Spark 3 Hdfs 2 Hive 2 Yarn 1 答案: cat words.txt | tr -s ' ' '\n' | uniq -c | sort -r | awk '{print $2" "$1}' tr -s ' ' '\n':使用'\n'替换' ' uniq -c:检查文件并删除文件中重复出现的行,并在

s_13J43QKKKAA的博客 988

Unity半透明物体景深失效?教你用双材质球方案完美解决(附完整Shader代码)

本文深入剖析了Unity中半透明物体导致景深效果失效的根本原因,即半透明物体默认不写入摄像机深度图。针对此问题,文章详细介绍了稳定高效的“双材质球”解决方案,通过为物体附加一个仅写入深度信息的不可见材质,完美修复景深效果,并提供了完整的Shader代码与实现脚本。

weixin_29010003的博客 381

Linux三剑客:grep、sed、awk 核心原理与实战组合技

在Linux系统管理与数据处理领域,文本处理是基础且高频的操作需求。其核心原理在于通过模式匹配、流编辑和结构化解析,实现对海量文本数据的高效过滤、转换与统计。掌握这些底层文本处理技术,能极大提升运维效率、简化数据分析流程,并成为自动化脚本的基石。具体到工程实践,grep凭借正则表达式引擎实现快速行级筛选,sed通过模式空间与保持空间支持非交互式流编辑,而awk则提供了完整的编程模型用于字段计算与报告生成。这些工具常协同应用于日志分析、配置批量修改、数据清洗等典型场景。本文聚焦于Linux三剑客——grep、

weixin_33881140的博客 386

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3106

android usb读写,安卓(Android)下如何开发USB NFC读写器app

对安卓工程师来说,在安卓下使用USB设备需要了解很多硬件的内容,这可能会导致工程周期的延长或者app的不稳定。为了将这种风险降到最低,友我科技发布了NFC读写器在安卓下的sdk,使用NFC读写器的类接口,安卓工程师就可以直接调用NFC读写器了,简单可靠。NFC读写器的安卓库文件为:yoworfidreader.jar在ADT工程中导入yoworfidreader.jar库文件,即可在工程中引用NF...

weixin_36433781的博客 822

Linux运维实战

去阿里源、清华源。

weixin_57136547的博客 286

C#实现网络寻路(附完整源码)

C#实现网络寻路(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 420

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

分享Charles抓包 显示<unknown> 解决方案 !

首先电脑上需要安装charles,然后需要设置手机上的WiFi设置,修改配置中的代理设置,把服务器的主机名设置成你电脑当前的ip地址(需要注意的是,你的代理服务器主机名的ip地址要和你当前连的ip地址的网段需要一致)。像 Charles 这样的工具,虽然功能强大,但仍然需要用户具备一定的配置和排障能力,以应对各种复杂的网络环境。通过将 Charles 的 SSL 证书正确安装到移动设备中,并在设置中启用“允许不安全的内容”选项,最终成功解决了这一问题,并准确抓取到所有请求数据。Charles 显示。

朱雀随云记的博客 8105

AgentScope Java 2.0 项目实战:使用AgentScope Builder 构建企业级多租户 AI Agent 平台

本文基于 AgentScope Builder 源码深度分析,系统讲解多租户 AI Agent 构建平台的完整开发流程。涵盖 Spring Boot 3.x + WebFlux 后端架构、React 18 + TypeScript 前端实现、HarnessAgent 运行时、CompositeFilesystem 多租户隔离、SSE 流式对话、6 种 IM 渠道接入(钉钉/飞书/企微/GitHub/GitLab)、Git 与 Nacos 技能市场、JWT 认证、Docker Sandbox 隔离等核心技术。

program哲学 717

用友Java秋招笔试真题解析:集合、SQL与算法全攻略

Java后端笔试中,集合框架与SQL编写是考察硬实力的核心环节。以HashMap为例,其底层数组+链表+红黑树结构、扩容机制以及ConcurrentHashMap在JDK 8中的CAS+synchronized演进,决定了多线程环境下的数据安全与性能平衡。事务隔离级别则直接影响ERP等业务系统的数据一致性,脏读、不可重复读、幻读的解决边界是数据库工程师必须掌握的基础。从索引失效的常见场景到窗口函数优化分组TopN查询,再到动态规划与链表等算法题的解题套路,这些知识点共同构成了Java开发岗位笔试的高频考点。

weixin_33857230的博客 321

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Shell脚本面试通关指南:从基础语法到工程化实践

Shell脚本作为Linux/Unix系统运维和开发的基石技能,其核心在于通过命令行解释器实现系统操作的自动化与流程控制。理解其工作原理,需要掌握变量、条件判断、循环、函数等基本语法,以及管道、重定向等机制。这项技术的价值在于提升运维效率、实现任务自动化,并作为系统问题排查和数据处理的重要工具。在实际应用场景中,Shell脚本广泛用于日志分析、服务监控、批量文件处理和部署流程自动化。本文聚焦于**Shell脚本面试**,深入探讨如何通过**工程化思维**和**健壮性设计**应对技术考察,涵盖从思路阐述到现场

weixin_33787529的博客 465

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux

多线程、shell语句、网络编程、mysql数据库、git远程仓库以及redis数据库与缓存的总结性学习

2601_94965056的博客 575

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python实战100题:从基础到进阶的系统编程练习指南

编程学习的关键在于将理论知识转化为解决实际问题的能力,而刻意练习是掌握一门编程语言最有效的方法之一。Python作为一门简洁高效的通用编程语言,其核心语法和数据结构是构建更复杂应用的基础。通过系统性的编程练习,开发者可以深入理解变量、循环、函数、列表、字典等基础概念的工作原理,并培养问题分解与逻辑实现的核心技能。这种训练对于巩固语法、查漏补缺以及准备技术面试都具有极高的实用价值。本文聚焦于一套包含100道经典题目的Python实战练习集,它覆盖了从基础语法到文件操作、简单算法的多个层面,旨在通过斐波那契数列

weixin_33802505的博客 339

Python零基础748集免费课程:学习路线与实战方法详解

编程入门的关键往往不在于缺少资源,而在于如何从零开始建立系统化学习路径。Python作为语法简洁、应用广泛的语言,是许多初学者和转行者的首选。理解编程学习的基本原理,即“理论输入必须配合动手输出”,能帮助学习者避开只看不练的陷阱。系统化的视频课程具有重要的技术价值,它能将基础语法、文件操作、面向对象、爬虫、数据分析等知识点串成完整知识链,降低碎片化学习带来的认知负荷。在实际应用中,Python常被用于办公自动化、数据处理、Web开发等场景,掌握它意味着具备高效解决重复性任务的工程能力。本文围绕一套免费的74

weixin_30940783的博客 413
上一篇: EDiary.exe 诡西游 空之境界 花田少年史
下一篇: 国富论
SunRuing
博客等级 码龄15年 7粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值