2016-11-19 20 views

回答

2

使用tail命令:

tail -n +2 file | wc -l 

-n +2將打印的文件,從第2行開始

1

您可以用awk從第二行開始數:

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

或者乾脆使用NR變量在END區塊中:

awk 'END {print NR-1}' file 

或者使用bash的算術減去1從wc輸出:

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

有沒有辦法來調整wc命令本身。您應該是處理命令的結果還是使用其他工具。

正如其他答案中所建議的那樣,如果您正在運行Bash,一個好方法是將命令的結果放入一個像$(($(command) - 1))這樣的算術表達式中。

在情況下,如果你正在尋找一個便攜式解決方案,這裏是一個Perl版本:

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

變量$.持有,因爲文件句柄最後關閉讀取的行數。 while循環讀取file中的所有行。

0

請試試這個。這將可以解決你的問題

$ tail -n +2 filename | wc -l 
2

刪除與GNU第一行的sed:

sed '1d' file | wc -l 
+0

的我想應該有任何sed的工作,而不只是GNU的sed。 – hek2mgl