wc -m in linux excess 1 值

wc -m in linux excess 1 value

md5sum file.png | awk '{print }' | wc -m

我得到:33
我希望它将 return 32 作为 md5 散列的长度。阅读手册页和谷歌搜索后,我仍然没有找到原因。

TL;DR

使用awk的length()函数:

md5sum file.png | awk '{print length()}'
32

这是因为awk会在输出中添加一个换行符。您可以查看:

md5sum file.png | awk '{print }' | xxd

你可以告诉 awk 不要使用 ORS 输出记录分隔符 变量:

md5sum file.png | awk '{print }' ORS='' | wc -m
32