这在 Linux (Debian) 上运行良好:
sed -e 's,^[ \t]*psd\(.*\)\;,,'
在 mac 上,我相信我必须使用 -E
标志,而不是 -e
:
sed -E 's,^[ \t]*psd\(.*\)\;,,'
但正则表达式不匹配,因此不会删除我想要的行。
关于如何解决这个问题有什么建议吗?
示例输入:
apa
bepa
psd(cepa);
depa psd(epa);
psd(fepa gepa hepa);
对于该输入,预期的输出是:
apa
bepa
depa psd(epa);
最佳答案
-E
标志表示使用扩展的正则表达式。您应该只使用 -e
,就像在 Linux 上一样。 Mac OS X 中的 sed
基于 BSD sed,因此没有 GNU 扩展。
复制样本输入后:
[~ 507] pbpaste | sed -e 's,^[[:space:]]*psd\(.*\);,,'
apa
bepa
depa psd(epa);
关于linux - Mac 上的 Sed 正则表达式问题,在 Linux 上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6761361/