首页 > 解决方案 > 有人可以解释为什么结果不一样吗?

问题描述

我正在学习 bash 和 Python。所以我尝试用 Bash 和 Python 解决大多数问题。这就是我最终尝试在 Bash 和 Python 中获取字符串长度的方式,而 wc 则返回一个不同的数字。在互联网上搜索以找到答案,但没有找到。

$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | wc -c
      31
====
$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | wc -m
      31
====
$ string="ensPpaJxUanRSxRzWSqMcLrYZDhkCp"
$ echo ${#string}                          
30
====
>>> print(len("ensPpaJxUanRSxRzWSqMcLrYZDhkCp"))
30

标签: pythonechowc

解决方案


echo 产生一个新行,它被视为一个附加字符,正如@khelwood 评论:

$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | python -c 'import sys; print(list(sys.stdin))' 
['ensPpaJxUanRSxRzWSqMcLrYZDhkCp\n']

推荐阅读