我有这样的线,我想知道我有多少行。

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命令来计算它们?


当前回答

使用wc:

wc -l <filename>

这将输出<filename>中的行数:

$ wc -l /dir/file.txt
3272485 /dir/file.txt

或者,从结果中省略<filename>使用wc -l < <filename>:

$ wc -l < /dir/file.txt
3272485

你也可以将数据传输到wc:

$ cat /dir/file.txt | wc -l
3272485
$ curl yahoo.com --silent | wc -l
63

其他回答

像这样使用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:

wc -l <filename>

这将输出<filename>中的行数:

$ wc -l /dir/file.txt
3272485 /dir/file.txt

或者,从结果中省略<filename>使用wc -l < <filename>:

$ wc -l < /dir/file.txt
3272485

你也可以将数据传输到wc:

$ cat /dir/file.txt | wc -l
3272485
$ curl yahoo.com --silent | wc -l
63

我只是做了一个程序来做这个(与节点)

npm install gimme-lines
gimme-lines verbose --exclude=node_modules,public,vendor --exclude_extensions=html

https://github.com/danschumann/gimme-lines/tree/master

如果你想检查一个目录中所有文件的行数,你可以使用find和wc:

find . -type f -exec wc -l {} +