Linux统计一个文件中特定字符个数的方法

Linux统计一个文件中特定字符个数的方法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去统计下字符的个数。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

欢迎分享,转载请注明来源:内存溢出

原文地址:http://outofmemory.cn/yw/902888.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-15
下一篇2022-05-15

随机推荐

  • android– 搜索存储在sqlite数据库中的字符串的最快方法

    概述我有大量的字符串,大约15,000,我使用以下代码存储在SQLite数据库中:voidaddKey(Stringkey,Stringvalue,Stringtable){SQLiteDatabasedb=this.getWritable

    2022-05-29
    1200
  • android– 将sqlite与string进行比较

    概述我在我的SQL数据库中保存了数据.现在我想用字符串比较这个保存的数据像这样的东西:Stringexample="house";现在我想检查,如果“house”已经在数据库中,带有if子句这样的事情if(example

    2022-05-29
    1200
  • 协议编程资料整理

    概述[1]网络编程基础资料:《TCPIP详解 - 第11章·UDP:用户数据报协议》《TCPIP详解 - 第17章·TCP:传输控制协议》《TCPIP详解 - 第18章·TCP连接的建立与终止》《TCPIP详解 - 第21章·TCP

    2022-05-29
    1000
  • Android自定义注解

    概述1、元注解 概念:用来定义其他注解的注解,自定义注解的时候,需要使用它来定义我们的注解。 在jdk1.5之后提供了java.lang.annotation来支持注解功能 常见的四种元注解有:@Target(目标, 注解可以使用的地方,参

    2022-05-29
    1100
  • android– 工具栏和Tabs之间的线

    概述如何删除工具栏和tablayout之间的深线,我搜索谷歌有人说,添加一些高度到工具栏和tablayout,我做但但它没有工作,从工具栏中删除高程和tablyout后,它也无法正常工作.请帮帮我:tablayout_xml:<Rel

    2022-05-29
    1000
  • android– 如何使我的ListView项目可点击?

    概述我在android中非常新.我正在制作一个列表视图,每次点击列表的项目时,它都应该打开一个新的活动.在这种情况下,设置活动.我尝试过很多方法,但都没有.任何形式的帮助将不胜感激.这是我的代码:packagecom.alex.mylist

    2022-05-29
    1000
  • 插件 – 是否有用于记事本的自动保存功能插件?

    概述在计划外系统重新启动后,我的所有记事本temp(和未保存)选项卡都已经没了。 今后如何避免这种情况? 我不想用文件名明确保存每个临时文件。 是否有NP的插件,每次编辑活动选项卡或每X分钟时,会保存会话? 或者是否有一个等同的(和舒适的)

    2022-05-29
    1200
  • android TextView.setText不适用于简单的小部件

    概述我有一个非常简单的AppWidgetProvider用于测试小部件:publicclassTestextendsAppWidgetProvider{publicvoidonUpdate(Contextcontext,AppWidgetM

    2022-05-29
    1100
  • Android自动圆形图库

    概述我有画廊小部件包含1-10张图片要滑动.我知道当我对屏幕进行条纹处理时,图像会从左向右滚动.我希望自动循环画廊10后自动启动第一张图像,是否有任何自动循环适配器或方式???finalGalleryg=(Gallery)findViewB

    2022-05-29
    600

发表评论

登录后才能评论

评论列表(0条)

    保存