当 grep 找到匹配时执行命令

互联网 行业动态 更新时间:2024-06-13 00:19:06

Lar*_*her 5

如果我理解您的问题是正确的(“每隔一段时间 grep 会找到一个匹配项”部分),那么您的程序会在其较长的运行时间期间多次生成正模式,并且您希望script.sh在这些时间点运行。

当您通过管道program传输到 grep 并使用 grep 退出代码时&&,您script.sh只执行一次并且仅在programs 运行时结束时执行。

如果我的假设是正确的(您想要script.sh运行多次),那么您需要在|符号后面使用“if then logic”。一种方法是使用 awk 而不是 grep:

program | awk '/pattern/ {system("./script.sh")}'
/pattern/ {system("./script.sh")}单引号中是 awk 脚本 /pattern/指示 awk 查找匹配的行pattern并执行以下花括号内的说明 system("./script.sh")在后面的花括号内通过 awks命令/.../执行当前目录script.shsystem

总体效果是script.shpatternprogram.

另一种方法是使用sed

program | sed -n '/pattern/ e ./script.sh'
-n防止 sed 在programs 输出中打印每一行 /pattern/programs 输出中行的过滤条件:行必须匹配pattern e ./script.sh是当一行匹配模式时 sed 执行的操作:它执行您的script.sh

更多推荐

命令,grep

本文发布于:2023-04-20 20:44:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/10fecedb6377b827852842dd3b92739a.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令   grep

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!