在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
标志意味着使用扩展的正则表达式。您应该只在Linux上使用-e
。 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/