wcコマンドで手軽にテキスト解析!文字数・単語数・行数をLinuxで数える方法

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作業の効率を高めてください。

タイトルとURLをコピーしました