8.4.39 wcコマンド(ファイルのバイト,行,文字および単語をカウントする)
形式
wc[-c][-l][-m][-w][--stdin-mode=ファイル変換モード][--words-delimiter=単語区切り文字タイプ][パス名 ...]
機能
ファイルのバイト,行,文字または単語をカウントします。入力ファイルの行数・単語数・文字数・バイト数・ファイル名の順序に,オプションに指定された情報だけ表示します。
環境変数ADSH_CMD_OPTWCにwcコマンドのオプションを設定することで,コマンド引数に指定しなくてもオプションを使用できます。環境変数ADSH_CMD_OPTWCについては,「2.5 環境変数を設定する」を参照してください。
引数
- -c
入力ファイルのバイト数を標準出力に出力します。
- -l
入力ファイルの行数を標準出力に出力します。改行コードの数を行数とします。
- -m
入力ファイルの文字数を標準出力に出力します。マルチバイト文字も1文字としてカウントします。
- -w
入力ファイルの単語数を標準出力に出力します。単語は,スペース,タブおよび改行で区切られた文字列の数とします。
単語を区切るスペースはシングルバイト文字のスペースです。マルチバイト文字のスペースも単語の区切りとする場合は,--words-delimiter=wide-chars-spaceオプションを指定してください。
- --stdin-mode= ファイル変換モード
-
標準入力のファイル変換モードを指定します。ファイル変換モードには次の値を指定することができます。
- text
-
標準入力をテキストモードに設定します。テキストモードでは,標準入力から入力した改行コード[CR]+[LF]を[LF]に変換します。そのため,標準入力から入力した改行コード[CR]+[LF]は,-cオプションでは1バイト,-mオプションでは1文字でカウントします。
- binary
-
標準入力をバイナリモードに設定します。バイナリモードでは,標準入力から入力した改行コード[CR]+[LF]を変換しません。そのため,標準入力から入力した改行コード[CR]+[LF]は,-cオプションでは2バイト,-mオプションでは2文字でカウントします。
--stdin-modeオプションの指定がない場合は,ファイル変換モードにtextが指定されたものとします。
--stdin-modeオプションを複数指定した場合は,最後に指定したオプションの値が有効になります。
このオプションはWindowsの場合に有効です。UNIXでは指定が無視され,binaryを指定したときの動作をします。
- --words-delimiter= 単語区切り文字タイプ
-
-wオプションで単語を区切る文字のタイプを指定します。単語区切り文字タイプには次の値を指定することができます。
- single-byte-space
-
単語を区切るときの文字を,シングルバイト文字のスペース,タブ,および改行とします。
- wide-chars-space
-
単語を区切るときの文字を,シングルバイト文字のスペース,マルチバイト文字のスペース,タブ,および改行とします。
--words-delimiterオプションの指定がない場合は,単語区切り文字タイプにsingle-byte-spaceが指定されたものとします。
--words-delimiterオプションを複数指定した場合は,最後に指定したオプションの値が有効になります。
- パス名
-
入力対象とするファイル名を指定します。パス名を指定しない,または「-」を指定した場合は標準入力から入力します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
ロケールと異なる文字コードの文字は,無効または不完全な文字と見なされます。
-cオプション,-lオプション,-mオプション,-wオプションのどれも指定しなかった場合,-cオプション,-lオプション,-wオプションが指定されたものとします。
オプションの指定順序に関係なく,行数,単語数,マルチバイトの文字数,バイト数,ファイル名の順序で表示します。数値は1文字のスペースと7桁で表示します。7桁で表示できない場合は,順次桁数を増やします。
無効,不完全なマルチバイト,ワイド文字,バイナリデータ,ロケールと異なる文字コードが含まれるファイルを入力するとエラーとなります(wc: binaryfile: Invalid or incomplete multibyte or wide character)。
-
パス名に指定したファイルから入力した改行コード[CR]+[LF]は変換しません。このため,改行コード[CR]+[LF]は,-cオプションの場合は2バイト,-mオプションの場合は2文字でカウントします。
-
標準入力から入力した改行コード[CR]+[LF]は,Windowsでは[LF]に変換するため,-cオプションの場合は1バイト,-mオプションの場合は1文字でカウントします。Windowsで改行コード[CR]+[LF]を変換したくない場合は,--stdin-modeオプションにbinaryを指定してください。UNIXでは,改行コード[CR]+[LF]は変換しないため,-cオプションの場合は2バイト,-mオプションの場合は2文字でカウントします。
使用例
オプションを指定しない場合のデフォルトを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc a.txt b.txt 5 5 55 a.txt 4 4 44 b.txt 9 9 99 total
-cオプションを指定して,入力ファイルのバイト数を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc -c a.txt 55 a.txt
-lオプションを指定して,入力ファイルの行数を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc -l a.txt 5 a.txt
-mオプションを指定して,入力ファイルの文字数を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc -m a.txt 50 a.txt
-wオプションを指定して,入力ファイルの単語数を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc -w a.txt 5 a.txt
すべてのオプションを指定して,入力ファイルの行数,単語数,文字数およびバイト数を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc -clmw a.txt 5 5 50 55 a.txt
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc -z wc: illegal option -- z usage: wc [-clmw] [--stdin-mode=word] [--words-delimiter=word] [file ...]
ファイル内に無効または不完全な文字がある場合にエラーメッセージを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\wc binaryfile wc: binaryfile: Invalid or incomplete multibyte or wide character
無効または不完全な文字として,次のものがあります。
無効または不完全なマルチバイト,ワイド文字,バイナリデータ
ロケールと異なる文字コードの文字