我有一个表格形式的STDOUT,内容如下:
$kubectl get postgresql
NAME TEAM VERSION PODS VOLUME CPU-REQUEST MEMORY-REQUEST AGE STATUS
acid-minimal-cluster acid 12 2 1Gi 2d16h SyncFailed
acid-userdb acid 12 2 5Gi 100m 100Mi 2d16h SyncFailed
databaker-userdb databaker 12 2 2Gi 100m 100Mi 2d16h SyncFailed
databaker-users-db databaker 12 2 2Gi 100m 100Mi 2d15h Running
并且要获得具有NAME = *users-db
和STATUS = Running
的行,这表示最后一行。
我正在尝试实现的是,检查数据库是否已成功部署。
在此编码块之前:
echo "Check if database $DB_NAME is correctly deployed"
for i in {1..3}; do
if [ kubectl get postgresql $DB_NAME | egrep -q "$DB_NAME|Running" ] ; then
echo "DB $DB_NAME successfully deployed"
break
elif [ $i -eq 3 ]; then
echo "DB $DB_NAME not successfully deployed"
exit 1
fi
sleep 3
done
我必须先选择右行。
如何编写bash脚本以使用NAME = *users-db
和STATUS = Running
获得对应的行?
尝试
awk '$1~/users-db$/ && $9=="Running"'
$1
$9\ \