我正在努力解决sed
在 macOS 和 Ubuntu 上都会出现的 in bash 问题。在长时间的调试过程中,我将其精确定位到这个最小的示例:
echo "abcde" | sed 's/.*/x/'
结果是:
X
这是有道理的,因为中的正则表达式sed
将任何输入替换为x
.
相似地:
echo "" | sed 's/.*/x/'
X
echo "-a" | sed 's/.*/x/'
X
等等。然而:
echo "-n" | sed 's/.*/x/'
请注意,输出现在为空。
这是怎么回事?为什么"-n"
as 输入与sed
任何其他(或无)输入的处理方式不同?