Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux MI-r如何显示结果中的特定值?_Linux_Shell_Geolocation - Fatal编程技术网

Linux MI-r如何显示结果中的特定值?

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", "

我想知道如何从以下命令中提取特定值

我在用whitemi获取计算机当前的地理位置

上面的命令告诉我这个结果

{
  "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'