我想使用jq
(如here所述)解析JSON数据,并从结果字符串中删除所有换行符。
我已经尝试使用tr
,但是这种方法也会删除解析值之间的所有空白。
我的代码:
IP=$(curl -s https://ipinfo.io/ip) # Get ip address
curl -s https://ipinfo.io/${IP}/geo | jq -r '.ip, .city, .country' | tr -d '\n' # parse only few values from the JSON data and remove new lines.
我在上面的代码中得到的是以下字符串:
XXX.XXX.XXX.XXXCity_NameCountry_Name
,但我想要这样的东西:
XXX.XXX.XXX.XXX City_Name Country_Name
答案 0 :(得分:0)
您可以根据这三段数据制作一个字符串,使其显示在一行上(通过输入获得单个结果):
IP=$(curl -s https://ipinfo.io/ip)
curl -s https://ipinfo.io/${IP}/geo | jq -r '.ip + " " + .city + " " + .country'
> myIp myCity myCountryCode
另一种不同但相似的输出格式的选择是使用@csv
输出格式,在该输出格式中,您希望为每个输入输出一个单元格数组:
IP=$(curl -s https://ipinfo.io/ip)
curl -s https://ipinfo.io/${IP}/geo | jq -r '[.ip, .city, .country] | @csv'
> "myIp","myCity","myCountryCode"
可以从任何电子表格软件轻松处理此结果。