Eu tenho um test.txt
arquivo que contém uma string por linha da seguinte forma:
AA
BNT
AA
KIO
LO
LO
POY
LO
II
LO
AA
AA
II
AA
BNT
POY
YTR
BNT
LL
BNT
Como posso usar o linux para percorrer o arquivo e retornar apenas as linhas que ocorrem 4 vezes?
Saída desejada:
AA
BNT
LO
Obrigado
Usando AWK:
Isso conta o número de vezes que cada linha foi vista e gera uma linha quando a contagem é exatamente quatro (portanto, as linhas vistas quatro ou mais vezes são exibidas uma vez).
Se você quiser ver apenas linhas que aparecem exatamente quatro vezes, use isto:
Com
sort
euniq
usado para contar ocorrências, enquantoawk
seleciona quando 4 ocorrências são encontradas.Para 4 e mais ocorrências, basta mudar
$1==4
para$1>=4
.Observe que isso funciona apenas para linhas de string única e a saída é classificada lexograficamente.