如何使用Sed与Awk处理curl返回的JSON,提取uri字段并去除前缀引号
最终修改后命令
curl -s -X GET --insecure -H "$(cat /token/.bearer_header)" "http://localhost:3000/api/search?query=%" | sed -e 's/[{}]//g' | awk -v RS=',"' -F: '/^uri/ {print $2}' | sed -e 's/"//g' -e 's/^ab\///'
修改点说明
- 给curl增加了
-s(静默模式)参数,直接关闭curl的进度输出,不会再显示下载速度、百分比等冗余信息 - 最后新增的sed管道做了两步处理:
- 第一步
s/"//g:删除所有双引号 - 第二步
s/^ab\///:删除每行开头的ab/前缀
- 第一步
如果不想多接管道,也可以直接修改原有awk逻辑实现相同效果,命令如下:
curl -s -X GET --insecure -H "$(cat /token/.bearer_header)" "http://localhost:3000/api/search?query=%" | sed -e 's/[{}]//g' | awk -v RS=',"' -F: '/^uri/ {gsub(/"/,"",$2);sub(/^ab\//,"",$2);print $2}'
内容的提问来源于stack exchange,提问作者Samurai
相关产品推荐
相关产品推荐

