回答:
上記の答えは正しいが、わずかに異なっている、あなたは使用することができますgrep簡単にコードなどのためにをgrep -vc '^$' file.txt
例(A):file.txt
$grep -vc '^$' file.txt
1 First line #This is two tabs to comment.
2
4
3 Fourth line #Another two tabs to comment.
$2
例(B):file.txt
$sed '/^$/d' file.txt | wc -l
1 First line #This is two tabs to comment.
2
4
3 Fourth line #Another two tabs to comment.
$4
結果が4であることに注意してください!2つだけを期待する場合。ただし、コンテンツとコメントの間のタブもカウントされます。
0からのカウントと1からのカウントは、grepまたはsedの詳細検索で覚えているように、grepからsedまでとは異なります。
sedます、オプションは実際には正しいですが、grep1つは正しくありません
Perlはそれを行うことができます。一般に、カウント行は次のように機能します。
$ perl -ne 'END{print $.}' input.txt
すべての空行を除外する場合は、次のようにします。
$ perl -ne '$c+=1 if not /^$|^\s+$/;END{print $c}' input.txt
このような入力ファイルがあるとしましょう
$ cat -n input.txt
1 Cat; Dog; Squirrel
2 ORGANISM Animalus terrus
3
4 Sequence: ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
5
合計5行、空行が2行あります。出力されるコマンドは次のとおりです。
$ perl -ne '$c+=1 if not /^$|^\s+$/;END{print $c}' input.txt
3
これは、単一のファイルに適しています。複数のファイルで機能させるには、次のようにします。
$ perl -ne '$c+=1 if not /^$|^\s+$/;printf("%d %s\n",$c,$ARGV) and $c=0 if eof' input.txt /etc/passwd
3 input.txt
52 /etc/passwd