Linux统计一个文件中特定字符个数的方法
时间:2022-07-27
本文章向大家介绍Linux统计一个文件中特定字符个数的方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
统计一个文件中某个字符串的个数,其实就是在在一块沙地里面找石头,有的人看到石头以后,在上面做个标记(grep),然后记住自己做了多少个标记;有的人看到石头以后,把它挖了(tr),最后统计自己挖了多少石头;有的人看到石头以后,把它跳过去(awk),然后统计自己跳了多少次。
这是我用的的文件
[root@bzhou test]# cat file
hafsdha
hahafsdfsdhaha
haha
我想匹配的是‘haha’这个字符串
1.grep的-o选项
[root@bzhou test]# grep -c 'haha' file
2
最开始的时候是用-c这个选项,不过-c只能统计一行的,如果一行里面有多个匹配的字符串,那-c就无能为力了。
这个是正确的
[root@bzhou test]# grep -o 'haha' file | wc -l
3
2. awk
这个东西要感谢CU上的blackold。
[root@bzhou test]# awk -v RS='haha' 'END {print --NR}' file
-v 去设定一个变量的值,RS是记录的分隔符,默认的是新行(n),就是说awk按照一行一行读数据,但是现在RS为’haha’后,就按’haha’读数据了,NR为已读的记录数,n个记录是被n-1个分隔符分开的,所以就是–NR了。
3.tr
严格意义上说,tr匹配不了字符串,只能去匹配单个字符。这里就匹配这个文件中‘h’的个数。
[root@bzhou test]# tr -cd 'h' <file | wc -c
8
[root@bzhou test]# grep -o 'h' file | wc -l
8
-d可以删除某个字符,如果只有-d就会输出删除特定字符后的字符串,但是-c可以反显,这就是显示了被删除的字符。然后可以用wc -c去统计下字符的个数。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。如果你想了解更多相关内容请查看下面相关链接
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Mysql如何选择唯一索引和普通索引
- Python自学成才之路 多线程开发
- Mysql为什么会抖一下呢
- Python自学成才之路 线程间协作 lock,condition,event的使用
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
- python自学成才之路 线程间协作之Semaphore,threading.local()
- jenkins基础
- Java 语言基础 (类和对象, 方法和封装, static 关键字和继承, 多态和特殊类)
- 安防视频监控系统视频上云解决方案EasyCVR集成海康EHome私有协议系列:设备录像流数据进行PS包分割
- Java 语言基础 (常用类的概述和使用, String 类的概述和使用, 可变字符串类和日期相关类, 集合类库)
- 盘一盘 Python 特别篇 22 - 分箱之 cut
- 数据结构基础 (代码效率优化, 线性表, 栈, 队列, 数组,字符串,树和二叉树,哈希表)
- Python爬虫之requests模块了解
- Python爬虫之数据提取概述
- Python爬虫之数据提取-jsonpath模块