Понимание команды 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, и, если первая пара присутствует в строке, устанавливает переменную в значение из второго поля, а при наличии второй пары печатать предыдущий набор значений и текущее второе поле.