¿Cómo filtrar un archivo para obtener líneas que constan enteramente de pares de dígitos repetidos?

¿Cómo filtrar un archivo para obtener líneas que constan enteramente de pares de dígitos repetidos?

Tengo un archivo que tiene números que comienzan desde

00000000
00000001
00000002
.
.
.
99999999

Quiero filtrarlo en bash para que el resultado sea así:

00000000
00000011
00000022
.
.
11223344
11223355
.
.
99999977
99999988
99999999

Respuesta1

Parece que realmente quieresfiltrarel archivo en lugar de ordenarlo; en particular, para generar solo aquellas líneas que constan enteramente de pares de caracteres repetidos o (más específicamente) dígitos. Entonces, por ejemplo grep, usando algo como

grep -Ex '((.)\2)+' yourfile

o usar el modo PCRE para evitar capturar el grupo externo

grep -Px '(?:(\d)\1)+' yourfile

Respuesta2

Suponiendo que todos sus números tienen ocho dígitos y están en un archivo llamado nums.txt, puede usar la función de cadena awk de substr para filtrar todas las líneas cuyos dos últimos caracteres son iguales:

awk '{ if(substr($1, 7, 1)==substr($1, 8, 1)) print $1}' nums.txt

Luego obtienes:

    00000000
    00000011
    00000022
    00000055

....

información relacionada