![如果未找到,则让 perl 正则表达式搜索失败并退出](https://linux22.com/image/1432845/%E5%A6%82%E6%9E%9C%E6%9C%AA%E6%89%BE%E5%88%B0%EF%BC%8C%E5%88%99%E8%AE%A9%20perl%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%90%9C%E7%B4%A2%E5%A4%B1%E8%B4%A5%E5%B9%B6%E9%80%80%E5%87%BA.png)
grep
如果没有找到结果,我会得到失败返回代码/退出状态。
我怎样才能用 perl 做同样的事情?
基本上,我想更改以下内容,以便如果未找到匹配项,则以状态 1 退出。
echo foo | perl -nle'print if m{bar}'
答案1
如果我要“快速而粗略地”解决这个问题,我会尝试这样的方法
echo foo | perl -nle' 打印如果 m{bar} 或打印 1'
希望这对您有帮助。
答案2
快速而肮脏:
echo foo | perl -nlE'print if $t ||= m{bar} }{ exit 1 if !$t'
解释:
“爱斯基摩之吻”™}{
关闭 while
循环(由 暗示-n
)。在if
语句中,变量$t
是1
在第一场比赛发生时立即发生的。