wc コマンドは追加文字数を計算します。

wc コマンドは追加文字数を計算します。
cat > file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.

wc file
1      16      82 file

wcこの場合、コマンドが3つの追加文字を返す理由を誰かが説明できますか?

答え1

wcサンプルファイルには奇妙なUnicodeアポストロフィが含まれているため、3つの文字がさらに表示されます(ほとんどの場合、ブラウザやテキストエディタからコンテンツをコピーしたため)。

$ cat file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.
$ wc file
1      16      82 file

純粋なASCIIアポストロフィを使用してください'

$ cat file2
Amy looked at her watch. He was late. The sun was setting but Jake didn't care.
$ wc file
1      16      80 file2

wcデフォルトでは各バイト数が表示されます。手動:

ファイルごとの改行、単語、バイト数

文字数を数えるには、-m次のパラメータを使用できます。

$ cat file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.
$ wc -m file
      80 file.txt

答え2

ファイルをパイプしてxxdASCIIと並んで16進出力を確認すると、表示または印刷できない追加の文字があるかどうかを確認できます。

$ cat file
one‏ and ‏two

$ cat file | wc
      1       3      18

$ cat file | xxd
00000000: 6f6e 65e2 808f 2061 6e64 20e2 808f 7477  one... and ...tw
00000010: 6f0a                                     o.

答え3

wc文字以外のバイトを計算します。使用する文字数を数えるには-mオプション:

cat > file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.

wc -l -w -m file
1      16      80 file

残りの「追加文字」は実際にファイルの末尾にある改行です。

関連情報