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

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 -l从文件名中获取行数

要进行更多的过滤,例如想要从文件中计数注释行数,请使用grep '#' Filename.txt | wc -l

echo  "No of files in the file $FILENAME"
wc -l < $FILENAME
echo total number of commented lines
echo $FILENAME
grep '#' $FILENAME | wc -l

其他回答

如果你使用的是某种基于bsd的系统,比如macOS,我建议你使用gnu版本的wc。它不会像BSD wc那样在某些二进制文件上出错。至少它仍然是可用的性能。另一方面,BSD的尾巴是缓慢的 ............ zzzzzzzzzz ...........

至于AWK,只有一个小警告——因为它在默认的行假设下运行,也就是\n,如果你的文件恰好没有一个尾随的新行分隔符,AWK会比BSD或GNU wc多计算1。同样,如果你在管道中完全没有新行,比如echo -n,这取决于你是在END{}部分还是FNR==1测量,NR将是不同的。

cat file.log | wc -l | grep -oE '\d+'

grep -oE '\d+':只返回数字。

将文件的输出重定向/管道到wc -l就足够了,如下所示:

cat /etc/fstab | wc -l

这就提供了。只是行。

Wc -l <filename>

这将为您提供输出中的行数和文件名。

Eg.

WC -L 24-11-2019-04-33-01-url_creator.log

输出

63 24-11-2019-04-33-01-url_creator.log

Use

Wc -l <filename>|cut -d\ -f

来获取输出中的行数。

Eg.

url_create .log|cut -d\ -f

输出

63

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

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

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