我在将“查找”的结果传递给 sed 时遇到了麻烦。我将它简化为我可以打破的最简单的东西,我得到了这个:
echo 1234567890abcdefghijklmnopqrstuvwxyz | sed 's/[:digit:]*/X/g'
我希望得到:
Xabcdefghijklmnopqrstuvwxyz
我从中得到的输出是:
X1X2X3X4X5X6X7X8X9X0XaXbXcXeXfXhXjXkXlXmXnXoXpXqXrXsXuXvXwXxXyXzX
这不是我所期待的。如果我将正则表达式更改为:
echo 1234567890abcdefghijklmnopqrstuvwxyz | sed 's/[0-9]*/X/g'
我得到:
XaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzX
这更接近我的预期。我刚刚意识到我在标准终端中没有这个问题,只有在 aquamacs eshell 中......我认为它一定是字符编码问题?也许与unicode有关?我如何确定这一点,以及如何解决这个问题?