bash - 字数统计命令的错误答案

bash - 字数统计命令的错误答案

我尝试使用命令获取字符串的字数wc。但它给出了不同的答案。它将字数增加了 1。

这是代码:

echo Enter a string:
read str
len=`echo $str | wc -c`
echo you have entered: $str
echo and the word count: $len

输出如下:

Enter a string:
robin
you have entered: robin
and word count: 6

我做错了什么?请帮我解决这个问题。我将不胜感激。谢谢。

答案1

假设你的意思是字符数不是字数统计(应该是 1),问题是echo添加了换行符。您可以使用

len=`echo -n $str | wc -c`

(该-n开关抑制换行符)或者 - 更好的 - 只使用 bash#可变长度运算符

len=${#str}

答案2

man wc

-c, --bytes
    print the byte counts

-w, --words
    print the word counts

因此,您应该使用wc -w而不是wc -c

相关内容