wc -l by awk2011年03月14日 11時31分11秒

wc はファイルの文字数、単語数、行数を調べるコマンド。各々のみを出力するオプションを取り、今回は -l を awk で実装する。

特に今回は、ファイルを一つだけ調べる場合を扱う。


% wc -l /etc/rc.conf
      37 /etc/rc.conf

awk には END 条件式があり、この条件は全てのファイルが読み終わった後に真になる。つまり、ファイルを読み込んだ後の後処理が書ける。また、awk には FILENAME という変数があり、現在読み込んでいるファイル名になっている。END 句内だと、最後のファイル名になる。


% awk 'END{print NR}' /etc/rc.conf
37 /etc/rc.conf

これらを利用すると苦もなく書ける。

今回の要点。

  1. END 条件式
  2. FILENAME