Одновременное получение поля и вложенного поля с помощью jq

Должно сработать, если исправить неправильное правило:

iptables -t nat -A POSTROUTING -o '!br0' --source 10.24.0.0/24 -j MASQUERADE
                               ^^^^^^^^^

(который никогда не будет совпадать, потому что нет интерфейса с именем!br0)

в:

iptables -t nat -A POSTROUTING ! -o br0 --source 10.24.0.0/24 -j MASQUERADE

Простой тест для демонстрации iptables не рассматривает '!br0'как отрицание, используя (проще )фиктивный интерфейс:

ip link add '!test' type dummy
ip address add dev '!test' 10.11.12.1/24
ip link set '!test' up
iptables -I OUTPUT -o '!test'

Теперь вы можете попробовать пропинговать через этот интерфейс:ping 10.11.12.2и увидеть, например, с помощью iptables-save -c |grep test, что счетчик увеличивается, когда интерфейс используется, и нет, если нет.

# iptables-save -c|grep test
[1:84] -A OUTPUT -o !test
4
30.09.2020, 12:37
1 ответ

В виде списка вкладки -разделенных значений :Создайте массив требуемых значений для каждого issue[]и передайте его в @tsv.

$ jq -r '.issues[] | [.key,.fields.summary ] | @tsv' file.json
RM-111  6.6.0

В виде строки с двумя значениями, разделенными пробелом. :Создайте строку в двойных кавычках для каждого issue[]и используйте \(...)для интерполяции значений в строке.

$ jq -r '.issues[] | "\(.key) \(.fields.summary)"' file.json
RM-111 6.6.0

Проблема с двумя последними вашими командами заключается в том, что первая из них сначала получает .key, а затем .fields.summary. Эти две части данных будут выводиться на отдельных строках.

Последняя команда пытается извлечь .key.fields.summary, который не существует.

7
18.03.2021, 23:01

Теги

Похожие вопросы