我尝试使用sed
注释查找每行的不匹配情况。如果有任何行与模式不匹配,则如果所有行都成功,则返回1。它寻找-的模式。我有sed命令,如下所示:
sed -n -E '/([a-zA-Z ]+-[0-9]+)/ p'
成功案例:
u-3 abaklsd
a-2 jkds
失败案例:
u-3 abaklsd
a-2 jkds
khs jkd
答案 0 :(得分:1)
sed
没有为此提供便利。您可以轻松地将脚本重构为Perl。
perl -ne 'if (/[a-zA-Z ]+-\d+/) { print } else { $rc=1; }
exit $rc if (eof)'
还是Awk:
awk '{ if (/[a-zA-Z +-[0-9]+/) print; else rc=1 }
END { exit rc }'
括号是多余的,所以我把它们拿了出来。不过,也许您想在正则表达式上领先^
和尾随$
锚。