なぜ `awk'/^[^\t]/{a++}END{print a}'' は空行を計算しないのですか?

なぜ `awk'/^[^\t]/{a++}END{print a}'' は空行を計算しないのですか?

awk '/^[^\t]/{a++}END{print a}'空行(つまり改行文字のみを含む行)はなぜ計算されませんか?空白行は\tタブで始まりませんか?

ベストアンサー1

その理由は[^\t]キャラクターが必要だからだ。改行文字($)は文字とは見なされません。以下が必要です。

awk '/^([^\t]|$)/{a++}END{print a}'

おすすめ記事