У меня есть две машины Linux.Один - 4.4.12-99, один - 4.4.143.Я просто запустил apt upgrade для них обоих.
У меня есть оператор awk, который содержит регулярное выражение, работающее на 4.4.143, но не работающее на 4.4.12-99.Я искал несколько дней и пробовал несколько разных синтаксисов, чтобы обнаружить, что может быть не так.awk не ошибается и не жалуется, просто не соответствует границе слова.Сценарии одинаковы на каждой машине и работают нормально, за исключением этого выражения awk.На том, который не работает должным образом, я могу заставить его соответствовать всем и обеспечить такой результат.
ip=$(awk -v sUSER="$sUSER" 'BEGIN{gsub(/\./,"\\.",sUSER)}match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) && $0 ~ ("[^[:alnum:]]"sUSER"$") && $0 !~ /^$/ && $0 !~ /^#/{print $1}' /etc/hosts )
awk просматривает файл / etc / hosts с переменной $ sUSER и пытается сопоставитьпользователю на связанный IP-адрес.
Я не могу понять, что я делаю неправильно.