【Linuxコマンド】wc コマンドの使い方とよく使うオプション

概要

 
wc コマンドは、ファイルや標準入力の行数・単語数・バイト数などを数えるためのコマンドです。
名前は「word count」の略ですが、行数やバイト数のカウントにもよく使われます。
 

デフォルトでは、指定した入力に対して

  • 行数(lines)
  • 単語数(words)
  • バイト数(bytes)

をこの順番で表示し、最後にファイル名を出力します。
パイプと組み合わせて、「grep のヒット件数を数える」「ログの行数だけを知りたい」といった用途でもよく使います。
 

フォーマット

 

wc [オプション] [ファイル名...]

 

ファイル名を指定しない場合は、標準入力から読み込んだ内容を集計します。
複数ファイルを指定した場合は、各ファイルごとの結果に加えて、最後に合計行が表示されます。

-l-w などのオプションを使うことで、「行数だけ」「単語数だけ」といった絞り込みも可能です。

 

よく使うコマンド例

 

・ファイルの行数・単語数・バイト数をまとめて確認する

wc access.log

access.log の行数、単語数、バイト数をまとめて表示します。
出力は「行数 単語数 バイト数 ファイル名」の形式になります。

 

・ファイルの行数だけを数える(-l)

wc -l access.log

-l(–lines)は、行数だけをカウントして表示します。
ログの行数や、設定ファイルの行数をざっくり確認したいときに一番よく使う形です。

 

・標準入力からの行数を数える(パイプと組み合わせ)

grep "ERROR" access.log | wc -l

grep の結果をパイプで wc に渡し、その行数を数える例です。
「ERROR の行が何件あるか」「特定条件にマッチする行数はいくつか」といった集計でよく使うパターンです。

 

・複数ファイルの行数を一覧し、合計も確認する

wc -l app.log db.log access.log

それぞれのファイルの行数と、最後に合計行数を表示します。
アプリケーションログ全体の行数をざっくり把握したいときなどに便利です。

 

・ディレクトリ配下のログ行数をまとめて数える

find . -name '*.log' -print0 | xargs -0 wc -l

find と組み合わせて、カレントディレクトリ以下の .log ファイルすべての行数を数える例です。
-print0xargs -0 を使うことで、スペースを含むファイル名にも安全に対応できます。

 

・単語数を数える(-w)

wc -w README.txt

-w(–words)は、単語数だけをカウントして表示します。
英語テキストなどで、ざっくり文章量を知りたいときに使います(日本語ではあまり出番が多くありません)。

 

・バイト数だけを確認する(-c)

wc -c largefile.dat

-c(–bytes)は、バイト数だけをカウントして表示します。
ファイルサイズを確認したいときに ls -l の代わりに使える場面もありますが、
通常は ls -lh などと併用することが多いです。

 

・文字数(マルチバイト文字を考慮)を確認する(-m)

wc -m message.txt

-m(–chars)は、文字数をカウントします。
UTF-8 などマルチバイト文字を含む場合でも、バイト単位ではなく文字単位の数を把握したいときに使えます。
(実装やロケールに依存する場合があるため、要件によっては別ツールでの検証も検討してください)

 

・最長行の長さ(文字数)を確認する(-L)

wc -L access.log

-L(–max-line-length)は、ファイル内で最も長い行の文字数を表示します。
ログの 1 行が長すぎないか、固定長ファイルのレコード長を確認したいときなどに役立ちます。

 




実務でのよくある使いどころ

 

・ログの件数やエラー件数の確認
grep "ERROR" | wc -l のように、ログの中から特定パターンにマッチする行数を数える用途で頻出します。
「このエラーは何件出ているのか」「1 日あたりのアクセス行数はどれくらいか」をざっくり把握するのに便利です。
 

・バッチ処理のレコード件数チェック
バッチ処理で生成されたファイルの行数を wc -l で数え、
想定している件数と合っているかをチェックする、といった使い方も定番です。
 

・設定ファイルの規模感の把握
大きくなりすぎた設定ファイルや SQL ファイルの行数をざっくり把握して、
「そろそろ分割した方がよさそうか?」といった判断材料にすることもあります。
 

・集計スクリプトの中での件数出力
シェルスクリプトの中で、フィルタ結果の件数だけを出力する場合にも wc -l はよく登場します。
その値を監視ツールに渡したり、閾値と比較したりといった用途にも使えます。
 

wc コマンド自体は非常にシンプルですが、パイプや find と組み合わせることで、
ログ解析やバッチ処理の検証など、日常的な運用作業で大きな威力を発揮します。
まずは wc -l を手に馴染ませておくと、使える場面がかなり広がります。

 

オプション(よく使うオプションのみ)

 

short optionlong optiondescription
-l--lines入力の行数だけをカウントして表示する
-w--words入力の単語数だけをカウントして表示する
-c--bytes入力のバイト数だけをカウントして表示する
-m--chars入力の文字数だけをカウントして表示する(マルチバイト文字を考慮した文字単位のカウント)
-L--max-line-length入力内で最も長い行の長さ(文字数)を表示する
-h--helpwc コマンドの使い方(ヘルプ)を表示して終了する
--versionwc コマンドのバージョン情報を表示して終了する
 

ここでは、GNU coreutils の wc コマンドで一般的によく使われる主なオプションを TablePress の表としてまとめている想定です。
実際に利用できるオプションや挙動は、ディストリビューションやバージョンによって異なる場合があるため、
本番環境で使用する前に man wc で最新の仕様を確認してください。

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。




人気ブログランキング


ブログランキング・にほんブログ村へ

にほんブログ村