【发布时间】:2017-03-05 06:18:30
【问题描述】:
目前我正在尝试在 Solaris 上将 sed 与正则表达式一起使用,但它不起作用。 我只需要显示与我的正则表达式匹配的行。
sed -n -E '/^[a-zA-Z0-9]*$|^a_[a-zA-Z0-9]*$/p'
输入文件:
grtad
a_pitr
_aupa
a__as
baman
12353
ai345
ki_ag
-MXx2
!!!23
+_)@*
我只想显示与上述正则表达式匹配的行:
grtad
a_pitr
baman
12353
ai345
还有其他方法可以使用替代方法吗?在perl中可以吗? 感谢您提供任何解决方案。
【问题讨论】:
-
因为模式是互斥的,你可以写成:
sed -n -e '/^a_[a-zA-Z0-9]*$/p;/^[a-zA-Z0-9]*$/p;'或sed -n -e '/^a_[a-zA-Z0-9]*$/p;' -e '/^[a-zA-Z0-9]*$/p;'。注意如果只需要过滤,也可以使用grep。 -
sed -n -E '/^[a-zA-Z0-9]*$|^a_[a-zA-Z0-9]*$/p'在 GNU sed 上为我工作,你到底是怎么失败的?
标签: regex bash perl sed solaris