linux shell对行数进行统计的方法

    技术2022-05-19  21

    本文参考了http://www.docin.com/p-56167731.html 上的例子

     

    1.统计一个文件的行数可以用以下命令:

    grep -c "" xxx.txt

    grep -n  ""  xxx.txt | wc -l

    _____________________________________________________

    PS:

    使用grep -n  “”  xxx.txt 可以对 xxx.txt 的内容显示行号,

    比如

    grep -n  ""  /etc/passwd

    输出结果: 1:root:x:0:0:root:/root:/bin/bash 2:daemon:x:1:1:daemon:/usr/sbin:/bin/sh 3:bin:x:2:2:bin:/bin:/bin/sh 4:sys:x:3:3:sys:/dev:/bin/sh 5:sync:x:4:65534:sync:/bin:/bin/sync 6:games:x:5:60:games:/usr/games:/bin/sh 7:man:x:6:12:man:/var/cache/man:/bin/sh 8:lp:x:7:7:lp:/var/spool/lpd:/bin/sh 9:mail:x:8:8:mail:/var/mail:/bin/sh 10:news:x:9:9:news:/var/spool/news:/bin/sh

    ....

    ______________________________________________________

     

    cat xxx.txt | wc -l

    ______________________________________________________

    PS:

    使用cat -n xxx.txt的方式,也可以输出带行号的文本内容

    而且比grep -n的效果要好

    比如 cat -n /etc/passwd      1  root:x:0:0:root:/root:/bin/bash      2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh      3  bin:x:2:2:bin:/bin:/bin/sh      4  sys:x:3:3:sys:/dev:/bin/sh      5  sync:x:4:65534:sync:/bin:/bin/sync      6  games:x:5:60:games:/usr/games:/bin/sh      7  man:x:6:12:man:/var/cache/man:/bin/sh      8  lp:x:7:7:lp:/var/spool/lpd:/bin/sh      9  mail:x:8:8:mail:/var/mail:/bin/sh     10  news:x:9:9:news:/var/spool/news:/bin/sh

    ...

    另外,更简单的一个带行号输出文件内容的命令是nl,相当于cat -n

    ______________________________________________________

     

     

    2.统计命令执行结果的行数

    find /etc/ -type f | wc -l     #统计/etc/下文件的个数

    find /etc/ -type f -name "*iscsi*"  | wc -l  #统计文件名中带有iscsi的文件数

    find /etc/ -type f -exec grep "mdadm" {} /; | wc -l   #统计/etc/目录下,带有mdadm内容的行数

    find /etc/ -type f -name "*iscsi*" | awk 'END{print NR}'  #统计文件名中带有iscsi的文件数

    find /etc/ -type f -exec grep "mdadm" {} /; | awk 'END{print NR}'  #统计/etc目录下,带有mdadm内容的行数

     

     

     

     

     


    最新回复(0)