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

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 myfile.txt | wc -l

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

厕所 -l 我的文件.txt

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

Wc -l < myfile.txt

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

其他回答

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

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

我一直在用这个:

cat myfile.txt | wc -l

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

厕所 -l 我的文件.txt

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

Wc -l < myfile.txt

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

使用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
wc -l file.txt | cut -f3 -d" "

只返回行数

这个drop-in便携式shell函数[ℹ]工作起来很有魅力。只需将以下代码片段添加到.bashrc文件(或shell环境的等效文件)。

# ---------------------------------------------
#  Count lines in a file
#
#  @1 = path to file
#
#  EXAMPLE USAGE: `count_file_lines $HISTFILE`
# ---------------------------------------------
count_file_lines() {
    local subj=$(wc -l $1)
    subj="${subj//$1/}"
    echo ${subj//[[:space:]]}
}

除了bash和zsh之外,它应该完全兼容所有posix兼容的shell。