Понимание команды awk

Мне нужна помощь в понимании следующей команды awk

awk -F "<name>|</name>|<machine>|</machine>" '{if($0 ~ "<name>" && $0 ~ "</name>") nm=$2;else if($0 ~ "<machine>" && $0 ~ "</machine>") {print nm,$2}}' config.xml

Эта команда дает мне вывод управляемых серверов weblogic и их соответствующих хостов в следующем формате.

managed_server1 host1
managed_server2 host2
managed_server3 host3

1 ответ

Это не очень хорошо написанный скрипт, но извлекает значения из строк в этом формате (и в этом порядке)

<name>xxx</name>
<machine>yyy</machine>

и выводы

xxx yyy

Устанавливает разделитель поля, чтобы открывать / закрывать теги xml, и, если первая пара присутствует в строке, устанавливает переменную в значение из второго поля, а при наличии второй пары печатать предыдущий набор значений и текущее второе поле.

Другие вопросы по тегам