![如何通过 awk 或 grep 过滤数据以仅获取时间?](https://linux22.com/image/1183503/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20awk%20%E6%88%96%20grep%20%E8%BF%87%E6%BB%A4%E6%95%B0%E6%8D%AE%E4%BB%A5%E4%BB%85%E8%8E%B7%E5%8F%96%E6%97%B6%E9%97%B4%EF%BC%9F.png)
curl -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance/compute/tagsList?
api-version=2019-06-04"|
通过上面的命令我得到如下输出
root@puppetagent-ubuntu1:/home/azureuser# grep -i "shutdown_time" test.txt |awk '/value/{print}' |jq
[ { "name": "Application_Name", "value": "POC-Exception" }, { "name": "Cost_Center", "value": "1000501541" }, { "name": "Stage", "value": "POC" }, { "name": "shutdown_time", "value": "16:00 [IST]" } ]
因此,我想过滤时间和时区的值类似于 IST 或 PST 的位置,但其中时间不固定且时区也不固定。请帮帮我。
答案1
使用jq
:
$ ... | jq -r '.[]|select(.name == "shutdown_time").value'
16:00 [IST]
$ ... | jq -r '.[]|select(.name == "shutdown_time").value' | cut -d' ' -f1
16:00