La forma más fácil sería usar grep
con PCRE:
$ ifconfig -a | grep -Po 'HWaddr \K.*$'
74:d4:35:84:34:13
grep -P
nos permitirá usar perl
Regex compatible
grep -o
solo tomará la parte coincidente de la línea
Hemos emparejado HWaddr
antes de que nuestros partidos deseada (direcciones MAC) y después se deseche HWaddr
por \K
imprimir sólo las direcciones MAC.
@Helio ha mencionado un punto importante, esto depende en gran medida de su idioma, es decir, la locale
configuración. Para superar esto, puede usar la C
configuración regional (usa el juego de caracteres ASCII) solo para este comando:
$ LANG=C ifconfig -a | grep -Po 'HWaddr \K.*$'
74:d4:35:84:34:13
LANG=C ifconfig -a
lugar deifconfig -a
instalaciones que no estén en inglés, puede haber problemas con grep. (es decir, en mi sistema,HWaddr
esdirecciónHW
)ifconfig -a | grep -i hw-*
:?-*
supone que eso significa algo?HW
pero dijoHWaddr
y en español como supongo / veo,direcciónHW
así que simplementeHW
puede ser;)grep
"es altamente experimental". Si desea utilizar expresiones regulares básicas, el comando es equivalenteifconfig -a | grep -o 'HWaddr [[:xdigit:]:]*'
o, si lo prefiere,ifconfig -a | grep -o 'HWaddr [a-f0-9:]*'
. He omitido el final$
porque la salida incluye espacios después de la dirección MAC, y probablemente no quieras esos.