Linuxコマンド - wc

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

wc (word count) コマンドは、テキストファイルの基本的な統計情報を表示するためのコマンドである。
オプションを付加しない場合は、行数、単語数、バイト数を表示する。

# 使用例:
echo "Hello World" > test.txt
wc test.txt

# 出力
1  2 12 test.txt


この出力は左から順に、行数(1)、単語数(2)、バイト数(12)を示しています。

標準入力からもデータを受け取れるため、パイプラインと組み合わせて使用することも一般的である。

cat file.txt | wc -l


特に、wcコマンドは大規模なログファイルの分析、スクリプト内でのファイル処理の自動化等でよく使用される。
また、grepコマンドやsedコマンド等の他のテキスト処理コマンドと組み合わせることにより、高度なテキスト解析も可能である。

複数のファイルを指定する場合は、各ファイルの統計情報と合計が表示される。
また、ワイルドカードを使用することもできる。

wc *.txt



オプション

下表に、wcコマンドの主なオプションを示す。

wcコマンドのオプション
オプション 説明
-l 行数のみを表示する。
-w 単語数のみを表示する。
-c バイト数のみを表示する。
-m 文字数をカウントする。



行数のカウント

テキストファイルの行数をカウントする上で、最も簡便で推奨する方法は、wc -lコマンドである。
wc (word count) コマンドにおいて、-lオプションを付加することにより行数のみをカウントすることができる。

wc -l <テキストファイル名>


wcコマンドとは異なるが、上記のコマンドは、その他のコマンドでも代替可能である。

# nlコマンドを使用する場合
nl -ba <テキストファイル名> | tail -n 1 | cut -f1

# grepコマンドを使用する場合
grep -c ".*" <テキストファイル名>

# sedコマンドを使用する場合
sed -n '$=' <テキストファイル名>


# ディレクトリ内の特定の拡張子をもつファイルの合計行数を確認する
wc -l *.py

# CSVファイルの上部2行を除いて、レコード数を数える
tail -n +2 data.csv | wc -l

# ファイル内の空行をカウントする
grep -c "^$" filename.txt

# ファイルからコメント行 (先頭に#) と空行を除いた実効行数を数える
grep -v '^#' config.txt | grep -v '^$' | wc -l

# ログファイルから特定のエラーを含む行数を調べる
grep "ERROR" application.log | wc -l



統計の表示

# ディレクトリ内の全てのJavaファイルの統計を再帰的に表示する
find . -name "*.java" -exec wc {} \;



ファイルサイズでソート

最も大きなファイルを特定する。 (バイト数でソート)

wc -c * | sort -nr



プロセス数の確認

ps aux | wc -l



ディレクトリ内のファイル数を数える

ls -1 | wc -l