linux中统计排序的内容含有空白行的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中统计排序的内容含有空白行的解决办法相关的知识,希望对你有一定的参考价值。

         linux中统计排序的内容含有空白行的解决办法

  废话不多说,直接上实例:

文件 sharkyun.log 的内容如下

[[email protected] ~]# cat -n sharkyun.log 

     1http://www.sharkyun.com/index.html

     2http://www.sharkyun.com/index.shtml

     3https://post.sharkyun.com/index.html

     4https://mp3.sharkyun.com/index.html

     5http://www.sharkyun.com/index.jsp

     6http://post.sharkyun.com/99.html

     7

注意:第七行有空格哦!

我想你不会想要下面的统计结果

[[email protected] ~]# awk -F/ ‘{print $3}‘ sharkyun.log |sort |uniq -c

      1 

      1 mp3.sharkyun.com

      2 post.sharkyun.com

      3 www.sharkyun.com

[[email protected] ~]# 


所以,你应该这样

[[email protected] ~]# awk -F/ ‘NF>1{print $3}‘ sharkyun.log |sort |uniq -c

      1 mp3.sharkyun.com

      2 post.sharkyun.com

      3 www.sharkyun.com

[[email protected] ~]# 

选项说明:

  NF>1 ====>表示要符合,当以斜线分隔符时,分割的字段数要大于 1的条件,awk才处理打印此行;

  空行自然不会去处理了。


又或者这样

[[email protected] ~]# cut -d"/" -sf3 sharkyun.log |sort |uniq -c

      1 mp3.sharkyun.com

      2 post.sharkyun.com

      3 www.sharkyun.com

[[email protected] ~]# 

选项说明:

  -d   ===>指定斜线为分隔字段的分界符

  -s   ===>表示不打印没有包含分界符的行  

  -f   ===>表示打印(输出)以 -d 定义的分界符后的第几个字段(这里是第3个)


也许老板会让你再搞个从大到小的排名

[[email protected] ~]# cut -d"/" -sf3 sharkyun.log |sort |uniq -c|sort -rn

      3 www.sharkyun.com

      2 post.sharkyun.com

      1 mp3.sharkyun.com

[[email protected] ~]# 


本文出自 “linux运维架构师” 博客,请务必保留此出处http://sharkyun.blog.51cto.com/10455795/1789852

以上是关于linux中统计排序的内容含有空白行的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Excel中统计不同打卡时间段的天数?

Linux中统计,检索和过滤文件内容的命令以及压缩归档命令(wc,grep,gzip,bzip2,

请大神指导从大日志文件中统计关键字次数的办法

如何在 Linux 中统计一个进程的线程数

linux中统计文件中一个字符串出现的次数

C语言:从给出的数据中统计出既是回文数又是素数的数