wcコマンドは、文字数や単語数、行数を調べることができます。文章を書いたときにどのくらいの文字を書いたかを確認するのに便利です。
findコマンドとsortコマンドと一緒に組み合わせると、どのくらいの文章量を書いたかのファイルリストを作成することができます。
目次
wcコマンドとは
ファイルを指定することでバイト数・文字数・スペースを区切りにした単語数・行数を調べることができます。
複数のファイルが指定された場合、最後の行に合計を表示します。
wcコマンドの構文
wcコマンドの構文
1 |
wc [option]... [file]... |
wcコマンドの例で利用するファイル
itemtext.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
apple apple apple apple apple onion apple apple yuzu apple onion apple apple onion onion apple onion yuzu apple yuzu apple apple yuzu onion apple yuzu yuzu onion apple apple onion apple onion onion apple yuzu onion onion apple onion onion onion onion onion yuzu onion yuzu apple onion yuzu onion onion yuzu yuzu yuzu apple apple yuzu apple onion yuzu apple yuzu yuzu onion apple yuzu onion onion yuzu onion yuzu yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
行数・単語数・バイト数を確認
(オプションなし)
wcコマンドは、オプションなしで用いると左から行数・単語数・バイト数・ファイル名の順番で標準出力に表示します。
表示する順番
左からの順番 | カウントするもの |
---|---|
1 | 行数 |
2 | 単語数 |
3 | バイト数 |
コマンド例
1 |
wc itemtext.txt |
実行結果
1 |
27 81 459 itemtext.txt |
標準入力からwcコマンドを使用するとファイル名は表示されません。
コマンド例
1 |
cat itemtext.txt | wc |
実行結果
1 |
27 81 459 |
オプションを用いて表示するものを指定
wcコマンドは、オプションを用いてカウントするものを指定することができます。オプションを用いて表示する場合、表示する順番は固定になっています。左から、行数・単語数・文字数・バイト数・文字表示の最大幅の順に表示し、オプションで指定したものが表示されます。
オプション表示のまとめ表
左からの順番 | オプション | カウントするもの |
---|---|---|
1 | -l | 行数 |
2 | -w | 単語数 |
3 | -m | 文字数 |
4 | -c | バイト数 |
5 | -L | 表示する最大幅 |
コマンド例
1 |
wc -c -m -w -l -L itemtext.txt |
実行結果
1 |
27 81 459 459 17 itemtext.txt |
findコマンドと組み合わせて文章量のファイルリスト作成
(--files0-fromオプション)
--files0-fromオプションは、wcコマンドの引数をファイルのリストから読み込むオプションです。このファイルの区切り文字はNUL文字になります。
findオプションは、ファイル検索のコマンドで出力するファイルをNUL文字区切りで表示する-print0オプションがあります。
findコマンドの-print0オプションとwcコマンドの--files0-fromオプションを利用して、文章量のファイルリストを作成できます。
コマンド例はカレントディレクトリのファイルを用いて、文字数での文章量ファイルリストを作成し、sortコマンドでソートも行っています。
コマンド例
1 2 3 |
find ./ -name '*' -type f -print0 | wc -m --files0-from=- | sort -n -k1,1 |
実行結果
1 2 3 4 |
54 ./testdata.txt 101 ./hello.c 459 ./itemtext.txt 614 合計 |
wcコマンドの--files0-fromの「-」は、標準入力を表します。
コマンド例をワンライナーにすると以下のようになります。
1 |
find ./ -name '*' -type f -print0 | wc -m --files0-from=- | sort -n -k1,1 |