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
十分でしょう。最初の発生と2番目の発生"
の間の行部分を-s
返します"
。
答え3
AWKを使って、
awk -F '"' '{if (NF==3) print $2}' file
“
区切り文字として使用- 2番目のフィールドの印刷
$2
NF==3
最大フィールド数が3の場合
答え4
awk -F\" 'NF>1{print $2}' file