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

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


当前回答

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

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

其他回答

我知道这很老,但仍然是:数过滤后的行数

我的文件如下:

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

OR

grep -c "OK" filename

我一直在用这个:

cat myfile.txt | wc -l

我更喜欢它而不是接受的答案,因为它不打印文件名,而且您不必使用awk来修复这个问题。答:接受

厕所 -l 我的文件.txt

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

Wc -l < myfile.txt

我可能从现在开始就会用到它。比我要走的路稍短一点。我把我的老方法提出来,以防有人喜欢。这两个方法的输出是相同的。

工具wc是UNIX和类UNIX操作系统中的“单词计数器”,但是您也可以通过添加-l选项来使用它来计数文件中的行数。

Wc -l foo将计算foo中的行数。您还可以像这样通过管道输出程序:ls -l | wc -l,它将告诉您当前目录中有多少文件(加一个)。

或者用文件名模式计算子目录中的所有行(例如,文件名中带有时间戳的logfiles):

wc -l ./**/*_SuccessLog.csv

有很多方法。使用wc就是其中之一。

Wc -l文件

其他包括

awk ' end {print NR}'文件

sed -n '$='文件

grep -c ".*" file