Я игнорирую тот факт, что это может быть лучше сделано в PHP (поскольку это то, с чем вы работаете) с использованием функций PHP для обработки строк, возможно, с помощью чего-то вроде $ addr = strtoupper (str_replace (":", "", $ output))
. Вместо этого я сосредоточусь на решении оболочки для Unix.
Использование Awk:
awk 'BEGIN { RS=":"; ORS = "" } { print toupper }' <<<"$mac_address"
Тестирование:
$ mac_address="xx:yy:zz:k7:23:f0"
$ awk 'BEGIN { RS=":"; ORS = "" } { print toupper }' <<<"$mac_address"
XXYYZZK723F0
Программа Awk считывает каждую часть MAC-адреса как отдельную запись (в противном случае запись обычно представляет собой строку ввода) и распечатывает их без разделителя записей ( в противном случае разделителем выходной записи по умолчанию является новая строка). Перед печатью каждой записи он преобразует ее в верхний регистр.