为什么wc加一加

时间:2013-11-05 14:15:12

标签: bash wc

假设我的长度为N

word0=`echo` # N = 0  
word1=`echo A` # N = 1
word2=`echo AB` # N = 2
word5=`echo ABCDE` # N = 5
word4=`echo "ABCD"` # N = 4

我使用wc来获取wordN的长度,例如:

echo $word0 | wc 
   1 
echo $word1 | wc 
   2 
echo $word4 | wc 
   5

wc为字长增加+1,结果为N+1

即使wc -cwc -m我得到了N+1

问题:wc应该这样工作吗?如果是这样,为什么它会增加+1?

2 个答案:

答案 0 :(得分:4)

尝试:

echo -n "stuff"|wc

echo添加换行符,因此如果按byteschars计算,则至少有1个

请参阅以下示例:

kent$  echo ""|wc -c
1

kent$  echo -n ""|wc -c
0

kent$  echo  ""|wc -m
1

kent$  echo  -n ""|wc -m
0

如果按“单词”计算,则没有区别:

kent$  echo  -n ""|wc -w
0

kent$  echo  ""|wc -w   
0

答案 1 :(得分:1)

我的wc打印三个值:行数,字数和字节数。我想你的只是打印字节数。您在管道中使用的echo命令始终添加换行符。这是您正在寻找的附加字节。