【发布时间】:2014-07-14 04:39:20
【问题描述】:
我需要模式匹配方面的帮助。我有以下文本作为命令的输出。
j-13PUDS1BDAAKK RUNNING ec2-54-242-150-167.compute-1.amazonaws.com Log Processing Job Flow
COMPLETED Setup Hive
RUNNING CopyLogs
PENDING CopyLogs
PENDING CopyLogs
PENDING CopyLogs
我需要将 CopyLogs 输出与 Completed 相匹配。所以基本上在执行命令后输出应该是
COMPLETED CopyLogs
COMPLETED CopyLogs
COMPLETED CopyLogs
COMPLETED CopyLogs
如何在 do while 循环中执行此操作(用于重试逻辑)。我尝试了以下
while :; do
result=$(elastic-mapreduce --jobflow $JOBFLOW --list) //lets say this returns the above output
[[ $result == +(*RUNNING*|*PENDING*|*WAITING*) ]] || break
done
echo "result now has no RUNNING or PENDING or WAITING"
但我只需要为“CopyLogs”执行此操作。我如何做到这一点
【问题讨论】:
-
奇怪的是,OP 已经在某种程度上解决了这个问题。见stackoverflow.com/questions/23853440/…