Linux 文件类信息统计指令(awk、sort、wc -l)

wc -l

cat file |grep -o word |wc -l 统计file文件中word这个关键字出现的个数 cat file |grep word |wc -l 统计file文件中word这个关键字出现的行数 

AWK

awk 是一种脚本语言,用于处理或分析文本文件。或者我们可以说,awk 命令主要用于根据列或字段或一组列对数据进行分组,它主要用于以有用的方式报告数据,它还使用 Begin 和 End 块来处理数据。

备注: 在 awk 命令中 {print;} 用于打印所有字段及其值。

打印特定的字段

在 awk 命令中,我们使用 $ (美元) 符号后跟字段号来打印字段值。

我们只打印字段 2 和字段 3,使用选项 -F,指定逗号为字段分隔符

$ awk -F "," '{print $2, $3;}' awk_file
Marks Max Marks
200 1000
500 1000
1000
800 1000
600 1000
400 1000

打印与模式匹配的行

打印包含单词 Hari 或 Ram 的行,示例如下

$ awk '/Hari|Ram/' awk_file
Ram,200,1000
Hari,600,1000
Ram,400,1000

特定列中数据项的和

在 awk 命令中,也可以根据搜索执行一些算术操作,语法如下所示

$ awk -F, ‘$1==”Item1″{x+=$2;}END{print x}’ awk_file

求一列中所有数字的总数

在 awk 命令中,我们还可以计算某一列中所有数字的和。在下面的例子中,我们正在计算第 2 列和第 3 列的所有数字的和。

$ awk -F"," '{x+=$2}END{print x}' awk_file
3500
$ awk -F"," '{x+=$3}END{print x}' awk_file
5000

 

分组求和

实现类似 SQL 中的按某个字段分组求和,示例如下:

$ awk -F, '{a[$1]+=$2;}END{for(i in a)print i", "a[i];}' awk_file
Abharam, 800
Hari, 600
Name, 0
Ghyansham, 1000
Ram, 600
Shyam, 500

sort 排序指令

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序

比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

sort [选项] 参数
cat file | sort 选项-n 按照数字进行排序
-r 反向排序
-u 等同于uniq,表示相同的数据仅显示一行
-t 指定字段分隔符,默认使用 [Tab]键分隔
-k 指定排序字段
-o <输出文件>:将排序后的结果转存至指定文件
-f 忽略大小写,会将小写字母都转换为大写字母来进行比较
-b 忽略每行前面的空格
#####按数字排序#####
sort -n num.txt #按照数字进行排序#####UID排序#####
sort -t ':' -k 3 -n /etc/passwd 
#也可以cut 方式 cat /etc/passwd | cut -d ':' -f 1,3#指定字段分隔符 指定排序第三字段(UID) 按照数字进行排序
#####IP主机位排序#####
sort -t '.' -k 4 -n /opt/ip 
#指定字段分隔符 指定排序第三字段(UID) 按照数字进行排序#####统计文件夹大小#####
du -a | sort -nr -o du.txt
#输出文件大小 数字倒序排序 写入du.txt文件

uniq命令 操作重复行

用于报告或者忽略文件中连续的重复行,常与 sort 命令结合使用 

unig [选项] 参数
cat file | uniq 选项cat file | uniq -c #统计出现次数
cat /opt/ip | sort -n -t '.' -k4 | uniq -c 
#cat输出文件内容 sort根据.分隔的第四段数字排序 再交给uniq -c统计出现的次数2 192.168.80.101 192.168.80.751 192.168.80.1001 192.168.80.1202 192.168.80.2003 192.168.80.245cat /opt/ip | sort -n -t '.' -k4 | uniq -c | awk '{print $1}' 211  #awk筛选出次数123

我不是网管 - 超有用的 Linux / Unix awk 命令示例 - 知乎

Linux shell编程常用命令(sort排序 uniq重复行 set +-x调试脚本 tr压缩替换字符 cut切片 split拆分 paste合并文件列 eval扫描变量)_shell的sort命令_低温热源的博客-CSDN博客

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

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

相关文章

七、HDFS文件系统的存储原理

1、总结 之所以把总结放在文件开头&#xff0c;是为了让读者对这篇文章有更好的理解&#xff0c;&#xff08;其实是因为我比较懒……&#xff09; 对于整个HDFS文件系统的存储原理&#xff0c;我们可以总结为一句话&#xff0c;那就是&#xff1a; 分块备份 2、存储结构和问题…

使用Navicat将SQL server数据库导入mysql数据库

使用Navicat将SQL server数据库导入mysql数据库 1、使用Navicat Premium打开MySql数据库&#xff0c;然后新建一个数据库名&#xff08;该数据库名称为需要从SqlServer数据库导过来的名称&#xff0c;mysql只有小写&#xff0c;不影响&#xff09; 比如需要将SqlServer数据库…

Linux IIC 驱动实验

一、引言 随着嵌入式系统的快速发展&#xff0c;IIC&#xff08;Inter-Integrated Circuit&#xff09;总线已经成为一种常见的通信协议&#xff0c;广泛应用于各种嵌入式设备中。在Linux操作系统中&#xff0c;IIC总线驱动程序是实现设备间通信的关键。本文将介绍一个基于Linu…

计数排序+桶排序 详讲(思路+图解+代码详解)

文章目录 计数排序和桶排序一、计数排序概念&#xff1a;写法一&#xff1a;写法二&#xff1a; 二、桶排序概念代码 计数排序和桶排序 一、计数排序 时间复杂度&#xff1a;空间复杂度&#xff1a;稳定性&#xff1a;稳定 概念&#xff1a; 非基于比较的排序 计数排序又称为…

PACS系统源码,WORKLIST数字化工作流程,影像数字化存储,电子报告书写、胶片打印

PACS系统源码 可与医院HIS、LIS无缝连接 PACS系统以实现医学影像数字化存储、诊断为核心任务&#xff0c;从医学影像设备&#xff08;如CT、CR、DR、MR、DSA、RF等&#xff09;获取影像&#xff0c;集中存储、综合管理医学影像及病人相关信息&#xff0c;建立数字化工作流程。 …

文章系列2:Unraveling the functional dark matter through global metagenomics

这篇文章发布于2023年10月nature。通讯作者是来自于 DOE Joint Genome Institute, Lawrence Berkeley National Laboratory, Berkeley, CA, USA. 背景介绍&目标 作者首先背景介绍了两种主流宏基因组分析方法&#xff0c;包括reads-based reference mapping&#xff08;eg…

Reactive.Net绑定Subscribe调用wpf控件报错

使用.ObserveOnDispatcher()解决&#xff0c;nuget安装ReactiveUI.WPF 参考 winforms - Rx Example not working - Stack Overflow

openssl+ SM2 + linux 签名开发实例(C++)

文章目录 一、SM2 签名理论基础二、SM2签名开发实例 一、SM2 签名理论基础 SM2是中国国家密码管理局发布的椭圆曲线密码算法标准&#xff0c;用于数字签名、密钥交换和公钥加密等安全通信场景。以下是SM2签名的理论基础相关知识点&#xff1a; 椭圆曲线密码学&#xff08;Elli…

为gnustep项目移植到wsl的过程

仔细研读/usr/share/GNUStep/Makefiles下的很多makefile文件的一些变量定义 然后开始整理代码&#xff0c;各个文件存放到自定义的文件夹&#xff0c;方便管理 修改GNUMakefile, 这里要研读很多Makefile 文件的变量定义&#xff0c;修正自己的赋值 一个尝试例子: https://gi…

VMware虚拟机的安装教程

安装VMware虚拟机的步骤如下&#xff1a; 首先&#xff0c;你需要从VMware官方网站&#xff08;https://www.vmware.com&#xff09;下载VMware虚拟机软件安装程序。 一旦下载完成&#xff0c;双击运行安装程序。 在安装程序启动后&#xff0c;你将看到一个欢迎界面。点击"…

chromium114添加新的语言国际化支持

一、需求说明 需要chromium114支持新语言体系,例如藏语,蒙古语,苗语等 二、操作步骤 1. build/config/locales.gni修改 在all_chrome_locales变量中添加新的语种标识,如下图。 2. 添加编译文件,告诉浏览器在编译时需要加载和输出那些文件 尝试编译出现错误一提示。需要…

Python Turtle Graphics 绘制I Love You字符

1.1引言&#xff1a; Python的turtle模块是一个非常有趣且强大的工具&#xff0c;它允许我们以一个可视化和互动的方式学习编程。通过调用各种命令&#xff0c;我们可以引导turtle画出一个指定的图形。在本博客中&#xff0c;我们将使用turtle模块来绘制一个复杂的图形。 1.2实…

读像火箭科学家一样思考笔记05_思想实验

1. 思想实验室 1.1. 思想实验至少可以追溯到古希腊时期 1.1.1. 从那时起&#xff0c;它们就跨越各个学科&#xff0c;在哲学、物理学、生物学、经济学等领域取得重大突破 1.1.2. 它们为火箭提供动力&#xff0c;推翻政府&#xff0c;发展进化生物学&#xff0c;解开宇宙的奥…

优秀智慧园区案例 - 三亚市崖州湾科技城智慧园区,先进智慧园区建设方案经验

一、项目背景 三亚崖州湾科技城作为海南自贸港建设的重点园区&#xff0c;是重点推进的海南自贸港先导项目之一。崖州湾科技城全力抢抓有利时机&#xff0c;进一步拓宽发展思路&#xff0c;持续深化体制机制创新&#xff0c;牢牢把握“打造产学研城深度融合的聚集地”这一核心…

问题:vue2+elementui,tabs切换显示表格并设置表格选中行高亮失败

错误示范&#xff1a; 1.直接setCurrentRow失败&#xff08;this.currentRow是之前保存的表格当前选中行的数据&#xff09; this.$refs.table.setCurrentRow(this.currentRow);2.以为是表格没生成就执行了setCurrentRow导致设置不成功&#xff0c;所以使用了this.$nextTick&…

同为科技(TOWE)桌面PDU插排:一款可以DIY定制的“超级插座”

当今社会&#xff0c;各种电子产品和家用电器已成为人们日常生活中不可或缺的一部分&#xff0c;在带给人们便利的同时&#xff0c;也使得电力使用变得更加频繁和重要。然而&#xff0c;当前市面上很多普通插座由于功能单一、材质粗劣、插口数量受限、充电速度过慢、插头间互相…

人机交互——机器人形态

1.聊天机器人 2.任务型机器人 3.面向FAQ的问答机器人 4.面向KB的问答机器人

seismicunix基础-声波波动方程推导

seismicunix基础-声波波动方程推导 接触波动方程的研究人员都绕不开这个公式&#xff0c;这是在一维状态下波动方程 但是对于这个方程是怎样来的很少有人能说清楚&#xff0c;其中涉及到牛顿第二运动定律&#xff0c;物体的加速度与受到的力有关。 假设一维弦是大量紧密连接的质…

服务器64GB内存、8核CPU的MySQL 8配置参数

服务器64GB内存、8核CPU的MySQL 8配置参数可以按照以下步骤进行调优&#xff1a; 调整缓冲区相关参数&#xff1a; 增加innodb_buffer_pool_size的值&#xff0c;将其设置为4GB或更大&#xff0c;以加速频繁读取的操作。 – 2147483648 增加key_buffer_size的值&#xff0c;将…

ES6 的 class 类和Typescript 的 class 类的区别

前言 为什么要理解ES6的类和TS类的区别&#xff1a; 都是面向对象的开发它们看着很像但是它们不一样学习明白了&#xff0c;避免混用 ES6 类是 JavaScript 中基于原型的面向对象编程的语法糖&#xff0c;而 TypeScript 类在此基础上增加了强类型检查和其他面向对象编程的特性…