wc
のヘルプ メッセージを見てください。 . -c
オプションは、文字数を出力します。 echo
コマンドには、デフォルトで改行文字が含まれています。 wc
のとき 改行を別の文字としてカウントするため、結果に追加のカウントが表示されます。以下に示す代替手段のいずれかを使用して、これを回避できます。 -w
単語数と -l
を数えます 行数を数えます。
echo "k" | wc -w
echo "k" | wc -l
wc
の出力をパイプできます awk
まで 改行文字を除いた文字数を取得するには:
wc <filename> | awk '{print $3-$1}'
wc
のデフォルト出力 オプションを指定しないと、改行文字数 ($1 から awk)、単語数、文字数 ($3 から awk) がこの順序で出力されます。
あなたが echo "k"
、echo
コマンドは、出力するように要求したものに改行文字を追加します ("k")。 -n
を使用できます これを無効にするオプション:
echo -n k | wc -c
1
目に見えないものを表示するため 文字、od
でストリームをダンプできます または hd
:
echo k | od -t c
0000000 k \n
echo k | hd
00000000 6b 0a |k.|
echo k | od -t a -A n
k nl
echo
を使用しているためです。 、文字列に改行を追加します。 printf
を使用 代わりに:
$ echo k | wc -c
2
$ printf k | wc -c
1