Unix Sed-删除最后两个字符的引号和逗号

Unix Sed-删除最后两个字符的引号和逗号,unix,sed,Unix,Sed,我只想保留10.100.52.11,删除其他所有内容,10.100.52.11不断变化,所以我不想硬编码 原始输出如下所示 "PrivateIpAddress": "10.100.52.111", 我尝试了以下命令并删除了“PrivateIpAddress”: 因此,上述命令的输出现在是 10.100.52.111", 我想删除结尾的引号和逗号 我尝试了[“].$和\{2\}。$不起作用。 请帮忙。让塞德做所有的工作。你不需要grep或head: sed -n '/"PrivateI

我只想保留10.100.52.11,删除其他所有内容,10.100.52.11不断变化,所以我不想硬编码

原始输出如下所示

 "PrivateIpAddress": "10.100.52.111",
我尝试了以下命令并删除了“PrivateIpAddress”:

因此,上述命令的输出现在是

10.100.52.111",
我想删除结尾的引号和逗号

我尝试了
[“].$
\{2\}。$
不起作用。
请帮忙。

让塞德做所有的工作。你不需要grep或head:

   sed -n '/"PrivateIpAddress": /{s///; s/[",]//g; p; q}'

让塞德做所有的工作。你不需要grep或head:

   sed -n '/"PrivateIpAddress": /{s///; s/[",]//g; p; q}'
备选方案:

$ echo "\"PrivateIpAddress\": \"10.100.52.111\", "
"PrivateIpAddress": "10.100.52.111", 

$ echo "\"PrivateIpAddress\": \"10.100.52.111\", " |grep -Po '(\d+[.]){3}\d+'
10.100.52.111

$ echo "\"PrivateIpAddress\": \"10.100.52.111\", " |grep -Eo '([[:digit:]]+[.]){3}[[:digit:]]+'
10.100.52.111
备选方案:

$ echo "\"PrivateIpAddress\": \"10.100.52.111\", "
"PrivateIpAddress": "10.100.52.111", 

$ echo "\"PrivateIpAddress\": \"10.100.52.111\", " |grep -Po '(\d+[.]){3}\d+'
10.100.52.111

$ echo "\"PrivateIpAddress\": \"10.100.52.111\", " |grep -Eo '([[:digit:]]+[.]){3}[[:digit:]]+'
10.100.52.111
如果
中的内容本身没有

grep PrivateIpAddress |head -1|sed 's/^[ ^t]*\"PrivateIpAddress\"[:]* \"//g'
可以替换为

awk -F\" '/PrivateIpAddress/{print $4; exit}'
  • -F\“
    使用
    作为字段分隔符
  • /PrivateIpAddress/
    如果行与此字符串匹配
    • print$4
      打印给定样本的第四个字段,即
      10.100.52.111
    • 退出
      将退出,因为只需要第一次匹配
如果
中的内容本身没有

grep PrivateIpAddress |head -1|sed 's/^[ ^t]*\"PrivateIpAddress\"[:]* \"//g'
可以替换为

awk -F\" '/PrivateIpAddress/{print $4; exit}'
  • -F\“
    使用
    作为字段分隔符
  • /PrivateIpAddress/
    如果行与此字符串匹配
    • print$4
      打印给定样本的第四个字段,即
      10.100.52.111
    • 退出
      将退出,因为只需要第一次匹配
    • 一些awk提案

      echo '"PrivateIpAddress": "10.100.52.111",'| awk -F: '{print substr($2,3,13)}'
      10.100.52.111
      echo '"PrivateIpAddress": "10.100.52.111",'| awk -F\" '{print $4}'
      10.100.52.111
      
      一些awk建议

      echo '"PrivateIpAddress": "10.100.52.111",'| awk -F: '{print substr($2,3,13)}'
      10.100.52.111
      echo '"PrivateIpAddress": "10.100.52.111",'| awk -F\" '{print $4}'
      10.100.52.111
      

      谢谢但是在“PrivateIpAddress”和“PrivateIpAddress”之间有一个空格:“10.100.52.111”,谢谢。但是在“PrivateIpAddress”“PrivateIpAddress”之间有一个空格:“10.100.52.111”,