Linux環境において、テキストファイルやログデータの規模を把握する際によく利用される標準ユーティリティがwc(Word Count)コマンドです。単なる容量確認ではなく、処理単位ごとの統計情報を迅速に取得できるため、シェル自動化やバッチ処理の前段階として広く採用されています。
基本オプションと出力仕様
wcコマンドは入力ストリームまたは指定ファイルに対して、以下の計測項目を組み合わせて返す設計になっています。
-l(行カウント): ストリームの改行文字を含む総行数を算出します。-w(単語カウント): 空白文字や制御文字で区切られたトークンの個数を計測します。-cまたは-b(バイト数): ファイルシステム上の物理的なデータサイズをバイト単位で表示します。
日本語などのマルチバイト文字を正確な桁数で数えたい場合は-m(文字数)フラグを優先して使用します。レイアウト解析時に最大幅が必要であれば-Lオプションにより最長行の桁数が取得可能です。
実践的な使用例
対象ファイルをaccess.logとした場合の実行例を示します。オプションを分離して指定することで、不要な数値出力をフィルタリングできます。
# 対象ファイルの全行数を取得
$ wc -l access.log<br>12450 access.log
# ログに含まれる単語総数を確認
$ wc -w access.log<br>98760 access.log
# ディスク占有率となるバイトサイズを取得
$ wc -c access.log<br>3145728 access.log
検索条件と行数カウントの統合
特定の文字列や正規表現に該当する行のみを集計する場合、wcだけでは機能不足となります。そのような場合适宜grepコマンドとパイプ演算子を活用して処理を連鎖させます。grep自体にも-cフラグによる直接カウント機能がありますが、複数パターンを同時に適用する場合や後段のプロセスにデータを流し込む場合はパイプライン方式が構造的に明確です。
セッション終了イベントを検索し、該当レコードの件数を抽出するサンプルコードです。
$ grep "SESSION_END" session_tracker.dat | wc -l<br>842
上記フローでは、左側のgrepがフィルター条件を満たした行だけを選択的に標準出力へ転送します。右側のwc -lはその流入ストリームを逐次読み込み、最終的な行数変換を実行します。このようにモジュール化されたコマンドチェーンは、メモリフットプリントを抑えつつ大量のデータ処理を可能にするUNIX設計思想の典型例となっています。