Eu tenho um arquivo que contém números começando em
00000000
00000001
00000002
.
.
.
99999999
Quero filtrá-lo no bash para que a saída seja assim:
00000000
00000011
00000022
.
.
11223344
11223355
.
.
99999977
99999988
99999999
Responder1
Parece que você realmente querfiltroo arquivo em vez de classificá-lo - em particular, para gerar apenas as linhas que consistem inteiramente em pares de caracteres repetidos ou (mais especificamente) dígitos. Então, por exemplo grep
, usando algo como
grep -Ex '((.)\2)+' yourfile
ou usando o modo PCRE para evitar a captura do grupo externo
grep -Px '(?:(\d)\1)+' yourfile
Responder2
Supondo que todos os seus números tenham oito dígitos e estejam em um arquivo chamado nums.txt, você pode usar a função de string awk de substr para filtrar todas as linhas cujos dois últimos caracteres são iguais:
awk '{ if(substr($1, 7, 1)==substr($1, 8, 1)) print $1}' nums.txt
Você então obtém:
00000000
00000011
00000022
00000055
....