LinuxやUnix系のシステムで作業をしていると、テキストファイルの中身の量を調べたいときがあります。たとえば「このファイルは何行あるのか?」「この文章には何文字含まれているのか?」といった基本的な情報を知りたい場面です。そんな時に便利なのがwc
コマンドです。
このコマンドを使えば、行数、単語数、文字数などの情報を一発で取得できます。この記事では、wc
コマンドの基本的な使い方から、オプションを活用した応用例までをわかりやすく解説します。Linux初心者の方にもわかるよう、例を交えながら丁寧に説明していきます。
wcコマンドとは?基本の役割
wc
は「word count」の略で、テキストファイルの行数、単語数、文字数、バイト数などを数えるための標準的なコマンドです。LinuxやUnix系OSではほぼすべての環境で利用可能で、ファイルの内容を解析する際にとても重宝します。
基本的な書式は以下の通りです。
wc [オプション] ファイル名
特にオプションを指定しなければ、wc
はそのファイルの「行数」「単語数」「バイト数」の順に結果を出力します。
wcコマンドの基本的な使い方
たとえば、sample.txt
というテキストファイルがある場合、以下のコマンドを実行すると:
wc sample.txt
このような出力になります(例):
10 50 300 sample.txt
これは、sample.txt
には「10行」「50単語」「300バイト」が含まれていることを示しています。
ここでのポイントは以下の通りです:
- 10:行数(
-l
オプションと同じ) - 50:単語数(
-w
オプションと同じ) - 300:バイト数(
-c
オプションと同じ)
オプションの詳細
wc
にはいくつかのオプションがあります。主に使用されるオプションは次のとおりです:
オプション | 内容 |
---|---|
-l | 行数を表示 |
-w | 単語数を表示 |
-m | 文字数を表示(マルチバイト文字も正確にカウント) |
-c | バイト数を表示 |
--help | 使用方法の表示 |
行数を数える(-l)
wc -l sample.txt
出力例:
10 sample.txt
ファイルの行数のみをカウントして表示します。ログファイルやスクリプトの行数チェックに便利です。
単語数を数える(-w)
wc -w sample.txt
出力例:
50 sample.txt
スペースや改行で区切られた「単語」の数をカウントします。英文などの分析に役立ちます。
文字数を数える(-m)
wc -m sample.txt
出力例:
300 sample.txt
文字数をカウントします。マルチバイト文字(日本語など)にも対応しているのが特徴です。
バイト数を数える(-c)
wc -c sample.txt
出力例:
350 sample.txt
ファイル全体のバイト数を表示します。日本語などのマルチバイト文字が含まれる場合、-m
との数が異なることがあります。
複数ファイルに対して使う方法
複数のファイルに対して一括でカウントすることも可能です。
wc file1.txt file2.txt
出力例:
5 20 100 file1.txt
10 40 250 file2.txt
15 60 350 total
このように、各ファイルごとの結果と、最後に合計も表示されるので非常に便利です。
パイプと組み合わせて使う
wc
は他のコマンドと組み合わせることで、さらに威力を発揮します。よく使われる例をいくつか紹介します。
grepと組み合わせる
たとえば、ログから特定のエラーメッセージが何行あるか数える:
grep "ERROR" logfile.txt | wc -l
このように、grep
の出力結果の行数をwc -l
で数えることで、条件に合致する行数を簡単に取得できます。
findと組み合わせてファイル数を数える
find . -type f | wc -l
カレントディレクトリ以下のすべてのファイル数を数えます。
バイト数と文字数の違いに注意
日本語などのマルチバイト文字を扱うとき、-c
(バイト数)と-m
(文字数)の結果が異なる場合があります。
たとえば「あ」はUTF-8で3バイトですが、1文字とカウントしたいなら-m
を使う必要があります。
echo "こんにちは" | wc -c # 結果は16(改行を含む)
echo "こんにちは" | wc -m # 結果は6(5文字+改行1文字)
このように、用途に応じて適切なオプションを選びましょう。
標準入力からの使用も可能
wc
はファイル名を指定しなくても、標準入力からのデータに対しても使えます。
echo "Hello world" | wc
出力例:
1 2 12
1行、2単語、12バイト(改行含む)です。スクリプトなどで動的に文字列を処理する場合に便利です。
スクリプトでの活用例
たとえば、特定のディレクトリ内にあるすべての.txt
ファイルの行数を合計したい場合:
cat *.txt | wc -l
あるいは、ループを使って個別に処理することも可能です。
for f in *.txt; do
echo "$f: $(wc -l < $f)"
done
このように、wc
はスクリプトの中でも柔軟に使えます。
まとめ
wc
コマンドは、シンプルながら非常に強力なツールです。行数、単語数、文字数、バイト数など、テキストに関する基本的な情報を一発で取得できるのが魅力です。オプションの使い分けや、他のコマンドとの組み合わせにより、さまざまなシーンで活躍します。
とくにログ解析、ファイル数のチェック、スクリプト内でのデータ処理など、日常的なLinux作業に欠かせない存在といえるでしょう。
ぜひwc
コマンドを使いこなして、Linux作業の効率を高めてください。