Tengo un archivo de texto muy largo (desde aquí ) que debe contener 6 caracteres hexadecimales y luego un 'salto' (que aparece como un carácter y no parece mostrarse correctamente en el código de marcado a continuación) seguido de algunas palabras:
00107B Cisco Systems, Inc
00906D Cisco Systems, Inc
0090BF Cisco Systems, Inc
5080 Cisco Systems, Inc
0E+00 ASUSTek COMPUTER INC.
000C6E ASUSTek COMPUTER INC.
001BFC ASUSTek COMPUTER INC.
001E8C ASUSTek COMPUTER INC.
0015F2 ASUSTek COMPUTER INC.
2354 ASUSTek COMPUTER INC.
001FC6 ASUSTek COMPUTER INC.
60182E ShenZhen Protruly Electronic Ltd co.
F4CFE2 Cisco Systems, Inc
501CBF Cisco Systems, Inc
He echado un vistazo y no puedo ver algo que funcione en esta situación. Mi pregunta es, ¿cómo puedo usar grep
/ sed
/ awk
/ perl
para eliminar todas las líneas de este archivo de texto que no comienzan con exactamente 6 caracteres hexadecimales y luego un 'salto'?
PD Para puntos de bonificación, ¿cuál es la mejor manera de ordenar el archivo alfabéticamente y numéricamente de acuerdo con los caracteres hexadecimales (es decir, 000000
-> FFFFFF
)? ¿Debo usar sort
?
Y para completar, también puede hacer esto con grep:
Esta expresión grep extendida busca exactamente 6 dígitos hexadecimales al comienzo de cada línea, seguidos inmediatamente por un límite de no espacio en blanco a espacio en blanco (
\b
).fuente