/ / combinar termos semelhantes no bash - bash, classificação, grep, uniq

combinar termos como no bash - bash, classificação, grep, uniq

Eu tenho uma lista de nomes de domínio em um arquivo de texto com um número de vezes que eles ocorrem em uma coleção de arquivos de email. Por exemplo:

 598 aol.com
1 aOL.COM
4 Aol.com
1 AOl.com
6 AOL.com
39 AOL.COM

Foram enviados 598 e-mails para a aol.com e 1 enviado para aOL.COM e assim por diante. Eu queria saber se havia uma maneira no bash para combinar aol.com e aOL.COM e todos os outros aliases, já que eles são na verdade a mesma coisa. Qualquer ajuda seria muito apreciada!

Esta é a linha de código que produziu essa saída:

grep -E -o -r "b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,6}b" $ARCHIVE | sed "s/.*@//" | sort | uniq -c > temp2

Respostas:

2 para resposta № 1

Adicione um -i (--ignore-case) bandeira para o uniq comando no seu one-liner:

grep -E -o -r "b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,6}b" $ARCHIVE 
| sed "s/.*@//" 
| sort 
| uniq -ic > temp2

De uniq página man:

-i
--ignore-case
Ignore differences in case when comparing lines.

0 para resposta № 2

Eu recomendaria mudar o programa produzindo este código para primeiro fazer tudo em minúsculas, (Converter seqüência de caracteres em minúscula no script de shell Bash), tente classificar.

Fazer isso depois do fato apenas tornaria sua vida mais difícil.