テキストファイルの行数を数える問題

テキストファイルの行数を数える問題

テキスト ファイル内の空でない行の数を取得できるようにしたいと考えています。

次のような内容の num.txt があるとします。

10

10
12
15
24
31
32

ここには 8 行ありますが、空でない行は 7 行だけです。空でない行がいくつあるかを調べるにはどうすればよいでしょうか。

編集: 次のコマンドを使用して問題を解決しました

空でない行 (または空白以外のものが含まれる行) を数えるには、次のようにします。

$ grep -c -v '^[[:space:]]*$' num.txt

答え1

(word-count)ユーティリティwcはファイル内の行数をカウントできます。

$ wc -l num.txt

... あるいは、ファイル内の改行の数を数えるのですが、ほとんどの場合は同じことです(実際、Unixシステムでは、定義された同じものとして扱われます。マニュアル (Mac OS X の場合) には、「最後の <newline>文字を超える文字は行数に含まれません」と記載されています。

あなたが少し混乱している理由は、おそらく、空行を行としてまったく考えていないからでしょう。しかし、空行は行なのです。

カウントする空でない行(または、空白以外の何かが含まれる行):

$ grep -c -v '^[[:space:]]*$' num.txt

関連情報