Linux MI-r如何显示结果中的特定值?
我想知道如何从以下命令中提取特定值 我在用whitemi获取计算机当前的地理位置 上面的命令告诉我这个结果Linux MI-r如何显示结果中的特定值?,linux,shell,geolocation,Linux,Shell,Geolocation,我想知道如何从以下命令中提取特定值 我在用whitemi获取计算机当前的地理位置 上面的命令告诉我这个结果 { "ip": "97.16.15.10", "country_code": "US", "country_name": "United States", "region_code": "NY", "
{
"ip": "97.16.15.10",
"country_code": "US",
"country_name": "United States",
"region_code": "NY",
"region_name": "New York",
"city": "The Bronx",
"zip_code": "10473",
"time_zone": "America/New_York",
"latitude": 40.802,
"longitude": -73.80,
"metro_code": 501
}
根据结果,在本例中,我只需要城市值“the Bronx”。使用适当的json解析器,如jq:
whereami -r | jq '.city'
Sed备选方案:
whereami -r | sed -rn 's/(^.*city": ")(.*)(".*$)/\2/p'
基于正则表达式将响应拆分为三个部分。将第二部分替换为该行并打印。我得到的只是解析错误解析错误:第1行第2列事件中的无效数字文本。js:174 thrower;//未处理的“错误”事件^I是否已安装jq?是,我已安装jq。确定。我添加了一个sed替代方案。是的,sed有效,谢谢
whereami -r | sed -rn 's/(^.*city": ")(.*)(".*$)/\2/p'