我写了以下命令
echo -en 'uno\ndue\n' | sed -E 's/^.*(uno|$)/\1/'期望得到以下输出
uno我的GNU Sed 4.8确实是这样。
但是,我已经证实了BSD Sed输出
为什么是这种情况?
发布于 2022-04-19 12:44:49
我认为BSD的sed是POSIX兼容的。POSIX只指定对基本正则表达式的支持,这些正则表达式有许多限制(例如,根本不支持x(更改),不支持+和?)以及不同的逃逸要求。
在MacOS上,BSD是默认的,所以在新系统中,首先要做的是获得与GNU兼容的sed:brew install gsed。
https://stackoverflow.com/questions/71834446
复制相似问题