Лучше объяснить на примере, чего я хочу достичь.
У меня есть такой вывод kubectl:
app-bf7c5cdfb-x8thq 3/3 Running 0 2h
app-bf7c5cdfb-xc9nf 3/3 Running 0 2h
app-bf7c5cdfb-xwlzh 2/3 Running 0 1h
app-bf7c5cdfb-xxt46 3/3 Running 0 2h
app-bf7c5cdfb-z9s2t 2/3 Running 0 7m
app-bf7c5cdfb-zmpzs 3/3 Running 0 2h
app-bf7c5cdfb-ztfx5 3/3 Running 0 2h
Я хочу grep для каждой строки, где готовые модулине равно общему количеству стручков, что приводит к:
app-bf7c5cdfb-xwlzh 2/3 Running 0 1h
app-bf7c5cdfb-z9s2t 2/3 Running 0 7m
Есть ли простой способ сделать это? Мой подход - написать такую функцию:
function kubeNotReady {
unset tmp
while :
do
read line
[[ $line == "" ]] && tmp="${tmp:0:$((${#tmp}-1))}" && break
total=`echo "$line" | sed -E "s|.*[[:digit:]]*/([[:digit:]]*).*|\1|"`
match=`echo "$line" | grep -v "$total/$total"`
if [ "${#match}" -gt "0" ]; then
tmp="$tmp$match"$'\n'
fi
done
echo "$tmp"
}
kubectl get po | kubeNotReady