行数统计linux - 如何统计文档中的行数?




统计c++代码行数 (12)

我有这样的线条,我想知道我实际上有多少线......

09:16:39 AM  all    2.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   94.00
09:16:40 AM  all    5.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   91.00
09:16:41 AM  all    0.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:42 AM  all    3.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:43 AM  all    0.00    0.00    1.00    0.00    1.00    0.00    0.00    0.00   98.00
09:16:44 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:16:45 AM  all    2.00    0.00    6.00    0.00    0.00    0.00    0.00    0.00   92.00

有没有一种方法可以使用linux命令统计它们?


以上是首选的方法,但“猫”命令也可以帮助:

cat -n <filename>

将用行号显示文件的全部内容。


使用wc

wc -l <filename>

像这样使用nl

nl filename

man nl

将每个FILE写入标准输出,并添加行号。 没有FILE,或者当FILE是 - 时,读取标准输入。


如果你想要的只是行数(而不是行数和愚蠢的文件名返回):

wc -l < /filepath/filename.ext

如前所述,这些也可以工作(但由于其他原因而较差):

awk 'END{print NR}' file       # not on all unixes
sed -n '$=' file               # (GNU sed) also not on all unixes
grep -c ".*" file              # overkill and probably also slower

工具wc是UNIX和类UNIX操作系统中的“字计数器”,您还可以通过添加-l选项来使用它来对文件中的行进行计数,因此wc -l foo将计算foo的行数。 你也可以像这样管道程序的输出: ls -l | wc -l ls -l | wc -l ,它会告诉你当前目录中有多少个文件。


我一直在使用这个:

cat myfile.txt | wc -l

我比接受的答案更喜欢它,因为它不打印文件名,并且不必使用awk来修复它。 接受的答案:

wc -l myfile.txt

但我认为最好的一个是GGB667的答案:

wc -l < myfile.txt

我可能会从现在开始使用它。 它比我的方式略短。 如果有人愿意,我会采取我以前的做法。 输出与这两种方法相同。


我在查找计算多个文件行数的方法时看到了这个问题,因此如果要计算.txt文件的多个文件行,您可以执行此操作,

cat *.txt | wc -l

它也将在一个.txt文件上运行;)


我知道这是旧的,但仍然: 计数过滤的线

我的文件如下所示:

Number of files sent
Company 1 file: foo.pdf OK
Company 1 file: foo.csv OK
Company 1 file: foo.msg OK
Company 2 file: foo.pdf OK
Company 2 file: foo.csv OK
Company 2 file: foo.msg Error
Company 3 file: foo.pdf OK
Company 3 file: foo.csv OK
Company 3 file: foo.msg Error
Company 4 file: foo.pdf OK
Company 4 file: foo.csv OK
Company 4 file: foo.msg Error

如果我想知道发送了多少个文件,请执行以下操作:

grep "OK" <filename> | wc -l

要么

grep -c "OK" filename

正如其他人所说, wc -l是最好的解决方案,但为了将来的参考,您可以使用Perl:

perl -lne 'END { print $. }'

$. 包含行号和END块将在脚本END时执行。


要统计所有线路使用:

$ wc -l file

要仅使用图案过滤和计数线条:

$ grep -w "pattern" -c file  

或使用-v来反转匹配:

$ grep -w "pattern" -c -v file 

查看grep手册页以查看-e,-i和-x参数...


cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+'grep -oE '\d+'了返回数字。

wc -l <file.txt>

要么

command | wc -l




scripting