У меня есть простой скрипт bash, который использует строку кода Perl + регулярное выражение для извлечения необходимого фрагмента строки.Похоже,
ANSWER=$(host $IPW 2>/dev/null | perl -p -e 's#^.+\s\b([a-zA-Z]{4,8}\d{1,3})(?=-\d\.).+$#\1#;'
По большей части работает, но время от времени выдает неожиданные совпадения.Пример:
$ echo "Host 31.201.188.199.in-addr.arpa. not found: 3(NXDOMAIN)" | perl -p -e 's#^.+?\s\b([a-zA-Z]{4,8}\d{1,3})(?=-\d\.).+?(?=\.$)#\1#;'
Host 31.201.188.199.in-addr.arpa. not found: 3(NXDOMAIN)
Предполагается, что строка соответствует частям строки, например «server100» (буквы + цифры), и возвращает соответствующую часть.Есть что-то, чего мне не хватает или пока не понимаю.(извините за беспокойство)