如何从文件的第二行获取文件的行数,因为第一行是标题?
wc -l filename
有没有办法设置一些条件?
答案 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