Linux 从文件的第二行获取行数
由于第一行是页眉,如何从文件的第二行获取文件的行数Linux 从文件的第二行获取行数,linux,bash,Linux,Bash,由于第一行是页眉,如何从文件的第二行获取文件的行数 wc -l filename 有没有办法在其中设置一些条件?使用tail命令: -n+2将从第2行开始打印文件您可以使用awk从第2行开始计数: awk 'NR>1{c++} END {print c}' file 或者只需在结束块中使用NR变量: 或者,使用BASH算术从wc输出中减去1: 或者,你可以减去2 echo $((`cat FILE | wc -l`-2)) 没有办法调整wc命令本身。您应该选择是处理命令的结果,还是使
wc -l filename
有没有办法在其中设置一些条件?使用tail命令:
-n+2将从第2行开始打印文件您可以使用awk从第2行开始计数:
awk 'NR>1{c++} END {print c}' file
或者只需在结束块中使用NR变量:
或者,使用BASH算术从wc输出中减去1:
或者,你可以减去2
echo $((`cat FILE | wc -l`-2))
没有办法调整wc命令本身。您应该选择是处理命令的结果,还是使用其他工具 正如其他答案中所建议的,如果您正在运行Bash,一个好方法是将命令的结果放入一个类似$$command-1的算术表达式中 如果您正在搜索可移植解决方案,以下是Perl版本:
perl -e '1 while <>; print $. - 1' < file
变量$。保存自上次关闭文件句柄以来读取的行数。while循环读取文件中的所有行。请尝试这一行。这会解决你的问题
$ tail -n +2 filename | wc -l
使用GNU sed删除第一行:
sed '1d' file | wc -l
我想这应该适用于任何sed,而不仅仅是GNU-sed。cat的无用用法
perl -e '1 while <>; print $. - 1' < file
$ tail -n +2 filename | wc -l
sed '1d' file | wc -l