shell中奇怪的wc行为

时间:2011-07-23 05:19:08

标签: shell

这是MAC中的shell, 为什么字数(wc)显示错误的字符数?

sh-3.2# /Users/orly/Desktop/random.password.py 1
5
sh-3.2# /Users/orly/Desktop/random.password.py 1 | wc -m
       2
sh-3.2# 

2 个答案:

答案 0 :(得分:2)

字符数是正确的:

$ echo 5 | od -c
0000000   5  \n
0000002
$ echo 5 | wc -m
2

输出两个字符,'5'和'\ n'。

<小时/> 而不是:

$ echo -n 5 | od -c
0000000   5
0000001
$ echo -n 5 | wc -m
1

答案 1 :(得分:1)

您的文件中可能有换行符。这可以解释char数为2。

ADDENDUM:试试这个:

hexdump -C

在“档案”上。

ADDENDUM 2:

更详细:

$ echo "dog" | wc -m
   4
$ echo "dog" | hexdump -C
00000000  64 6f 67 0a                                       |dog.|
00000004

有意义吗?