从文件的第二行获取行数

时间:2016-11-19 05:57:21

标签: linux bash

如何从文件的第二行获取文件的行数,因为第一行是标题?

wc -l filename

有没有办法设置一些条件?

6 个答案:

答案 0 :(得分:2)

使用tail命令:

tail -n +2 file | wc -l

-n +2将从第2行开始打印文件

答案 1 :(得分:2)

使用GNU sed删除第一行:

(progn
  (foo 4)
  (bar 2))

答案 2 :(得分:1)

您可以使用awk从第2行开始计算:

awk 'NR>1{c++} END {print c}' file

或者只是在NR块中使用END变量:

awk 'END {print NR-1}' file

或者使用BASH算法从wc输出减去1:

echo $(( $(wc -l < file) -1 ))

答案 3 :(得分:1)

无法调整wc命令本身。您应该处理命令的结果,还是使用其他工具。

正如其他答案中所建议的,如果你正在运行Bash,一个好方法是将命令的结果放入像$(( $(command) - 1 ))这样的算术表达式中。

如果您正在搜索便携式解决方案,请参阅Perl版本:

perl -e '1 while <>; print $. - 1' < file

变量$.保存自上次关闭文件句柄以来读取的行数。 while循环读取file

中的所有行

答案 4 :(得分:0)

或者,你可以减去2。

echo $((`cat FILE | wc -l`-2))

答案 5 :(得分:0)

请尝试这个。它将解决您的问题

 $ tail -n +2 filename | wc -l