「wc -c」がエコーに異なる値1を出力するのはなぜですか?

「wc -c」がエコーに異なる値1を出力するのはなぜですか?

走っている間

echo abcd | wc -c

それが返されます5
しかし、単語のabcd長さは4文字にすぎません。

echo単語の後に特殊文字を印刷してください。abcd

echo印刷されないようにできますか?

ベストアンサー1

echo\n行末に改行文字を印刷( )

echo abcd | xxd
0000000: 6162 6364 0a          abcd.

一部のecho実装では、次のものを使用できます-n

-n末尾の改行を出力しない

そしてテストしてください:

echo -n abcd | wc -c
4

他の場合は\cエスケープシーケンスが必要です。

\c<newline>最後のパラメータ以降の出力を抑制します。パラメーターの次の文字はすべて'\c'無視されます。

echo -e 'abcd\c' | wc -c
4

移植可能には、以下を使用してくださいprintf

printf %s abcd | wc -c
4

wc -c文字数ではなくバイト数を計算します(abcdしばしば同じですが、wc -m文字数を計算するために使用されます)。

おすすめ記事