理由
半角英数の場合はawkは機能するが
# echo "xxx" | awk ' {print length($0)}' 3
日本語のような文字に対してはバイト数を見ているため機能しないから。
# echo "ばつ" | awk ' {print length($0)}' 6
対応策
wcを使う。
root@instance-1:~/Twitter# echo "ばつ" | wc -m 3
# echo "xxx" | wc -m 4
文字数が一つ多く見えるのは改行が入っているから。そういう時は echo -n オプションを使えば数があいます。