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

  • Post author:
  • Post category:linux


本文参考了

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内容的行数



版权声明:本文为vah101原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。