-1

当我跑

echo "obase=2;3" | bc | grep -v \n\s | wc -m

bash 返回 3。但是当我运行时

echo "obase=2;3" | bc

bash 返回 11。

为什么 wc -m 的计数高一位数?

4

1 回答 1

4

额外的字符是尾随的换行符。

wc -m接收并计算以下三个字符:1 1 \n.

$ echo "obase=2;3" | bc | grep -v \n\s | od -c
0000000    1   1  \n                                                    
0000003

如果你去掉换行符,计数将如你所料:

$ echo "obase=2;3" | bc | grep -v \n\s | tr -d '\n' | wc -m
       2
于 2013-01-20T17:01:25.920 回答