我使用命令从 EC2 获取 IP 列表。
到目前为止我得到的结果是这样的列表:
[
"172.31.11.7",
"172.31.48.141",
"172.31.64.201",
"172.31.64.149",
"172.31.64.148",
"172.31.64.111"
]
我想要得到的结果为:
172.31.11.7
172.31.48.141
172.31.64.201
172.31.64.149
172.31.64.148
172.31.64.111
我怎样才能做到这一点?
答案1
使用jq
:
jq -r '.[]' file
使用egrep
:
egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file
或者
egrep -o '([0-9]+\.){3}[0-9]+' file
使用grep
:
grep -o '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' file
答案2
对于该样本,
cut -d'"' -sf2
就足够了。它返回第一次和第二次"
出现之间的行部分,并 (with -s
) 丢弃不包含任何 的行"
。
答案3
使用 AWK,
awk -F '"' '{if (NF==3) print $2}' file
- 用作
“
分隔符 - 打印第二个字段
$2
NF==3
如果字段的最大数量等于 3
答案4
awk -F\" 'NF>1{print $2}' file