在linux命令行中使用wc或grep是否有问题?我";我得到了+;我的字符数是1

在linux命令行中使用wc或grep是否有问题?我";我得到了+;我的字符数是1,linux,bash,grep,command-line-interface,wc,Linux,Bash,Grep,Command Line Interface,Wc,当我跑的时候 echo "obase=2;3" | bc | grep -v \n\s | wc -m bash返回3。但是当我跑的时候 echo "obase=2;3" | bc bash返回11 为什么wc-m的计数高一位数?额外的字符是尾随的换行符。 wc-m接收并计数以下三个字符:11\n $ echo "obase=2;3" | bc | grep -v \n\s | od -c 0000000 1 1 \n

当我跑的时候

echo "obase=2;3" | bc | grep -v \n\s | wc -m
bash返回3。但是当我跑的时候

echo "obase=2;3" | bc
bash返回11


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

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

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

仅用于刷新-m在wc中代表什么?“-m”表示“打印字符数”。