regex - Bash:一行以 grep 命令的相反状态退出?

标签 regex bash grep exit exit-code

如何减少以下 bash 脚本?

grep -P "STATUS: (?!Perfect)" recess.txt && exit 1
exit 0

看起来我应该可以用一个命令来完成,但我这里总共有 3 个。

我的程序应该:

  • 阅读recess.txt
  • 如果包含一行“状态:”不是“完美”的行,则退出 1(或非零)
  • 如果不存在这样的行则退出 0(即所有“状态:”行都是“完美”)

答案奖颁给最紧凑的剧本。谢谢!

示例文件

对于这个文件,程序应该有退出状态0:

FILE: styles.css 
STATUS: Perfect!

FILE: contour-styles.css
STATUS: Perfect!

程序应该有此文件的退出状态 1(或非零):

FILE: styles.css 
STATUS: Perfect!

FILE: contour-styles.css
STATUS: Busted 
FAILURES: 1 failure

Id's should not be styled
       1. #asdf

最佳答案

只是negate返回值。

! grep -P "STATUS: (?!Perfect)" recess.txt

关于regex - Bash:一行以 grep 命令的相反状态退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367674/

相关文章:

regex - 删除 R 中的数字而不是日期(正则表达式)

c# - 简单的正则表达式匹配

php - 正则表达式 - 需要从 html 注释中获取字符串

linux - 将 wget 输出覆盖到文本文件

bash - 为什么一定要逃走 |和 + 在撇号之间的 grep?

linux - 如何在文件中grep "\n"

Java正则表达式包含下划线

macos - 在单用户模式下从桌面删除文件 osx

bash - 始终在 grep 中包含第一行

linux - 从 grep 输出中删除 </p> 标签