IDC知识库
IDC领域专业知识百科平台
首页 > 网络知识

网络知识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去统计下字符的个数。

    声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » Linux统计一个文件中特定字符个数的方法
    • 日销500+
      基础型云服务器

      2核CPU

      2G内存

      50G硬盘

      2M带宽

      独立IP

      分布式存储

      适合企业官网、个人站长类网站

      ¥106 原价¥116

    • 日销500+
      超值型云服务器

      2核CPU

      4G内存

      50G硬盘

      2M带宽

      独立IP

      分布式存储

      适合企业官网、行业门户类网站

      ¥156 原价¥171

    • 日销500+
      通用型云服务器

      4核CPU

      4G内存

      50G硬盘

      2M带宽

      独立IP

      分布式存储

      适合电商、论坛类网站

      ¥203 原价¥223

    分享到:更多 ()
      • 企业邮箱 全新登场
      • 虚拟主机
      • 云服务器

      评论 抢沙发

      • 昵称 (必填)
      • 邮箱 (必填)
      • 网址

      中国领先的互联网域名及云服务提供商

      为您提供专业域名知识,域名交易知识,云服务器知识,虚拟主机知识讲解

      域名注册云服务器