Як видалити "" у списку виводу?

Я використав команду, щоб отримати список IP від ​​EC2.

Результат, який я отримав, - це такий список:

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

Як я можу це зробити?

0

5 Відповіді

Використовуючи 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
3
додано

Дані - масив JSON. Щоб витягти елементи за допомогою jq

$ jq -r '.[]' file
172.31.11.7
172.31.48.141
172.31.64.201
172.31.64.149
172.31.64.148
172.31.64.111

Використання sed (яку ви не повинні використовувати для аналізу даних JSON):

$ sed -E '/[][]/d; s/^[[:space:]]*"//; s/",?//' file
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
додано

Для цього зразка,

cut -d'"' -sf2

було б достатньо. Вона повертає частину лінії між першим і другим " подією і (з -s ) відкидає рядки, які не містять " .

1
додано

з використанням AWK,

  awk -F '"' '{if (NF==3) print $2}' file
  • using as a delimiter
  • printing second filed $2
  • NF==3 if the maximum number of field is equal to 3
1
додано
awk -F\" 'NF>1{print $2}' file
0
додано
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram