如何用常用工具统计文件的行数?

如何用常用工具统计文件的行数?

我将grep结果重定向到一个文件,然后用于cat在屏幕上显示其内容。我想知道结果文件中有多少行结果,然后将其添加到某个计数器。

最好的方法是什么?任何相关标志grepcat

答案1

如果您已经将grep输出收集到文件中,则可以使用以下命令输出编号列表:

cat -n myfile

如果您只想要行数,只需执行以下操作:

wc -l myfile

绝对没有理由这样做:

cat myfile | wc -l

...因为这不必要地执行必须重复的I/O (the cat) 。wc此外,您还有两个流程,一个就足够了。

如果您想grep在终端上打印最后匹配的计数,您可以执行以下操作:

grep whatever myfile | tee /dev/tty | wc -l

注:/dev/tty为控制终端。来自tty(4)手册页:

该文件/dev/tty是一个字符文件,主设备号为 5,次设备号为 0,模式通常为 0666 和owner.group root.tty.它是进程的控制终端(如果有)的同义词。

除了ioctl(2)tty 所指的设备支持的请求ioctl(2)TIOCNOTTY支持请求。

答案2

旗帜-c将完成这项工作。例如:

 grep -c ^ filename

将计算 . 返回的行数grep

记录在手册页:

-c, --count 抑制正常输出;而是打印每个输入文件的匹配行数

答案3

使用

your_command | wc -l

从手册中:

NAME
       wc - print newline, word, and byte counts for each file

...

       -l, --lines
          print the newline counts

答案4

您可以使用 wc -l 来获取行数。

例子:

$ cat foobar.txt | wc -l

相关内容