Como você mencionou awk
, aqui está uma solução:
awk '{d[$9]++}END{for(f in d)if(d[f]>1)print d[f],f}' f.txt
Se você também tiver arquivos com caracteres de espaço em seus nomes, será necessária alguma solução alternativa:
awk '{f=$9;for(i=10;i<=NF;i++)f=f" "$i;d[f]++}END{for(f in d)if(d[f]>1)print d[f],f}' f.txt
Observe que a solução alternativa acima pode falhar, por exemplo, ao lidar com links simbólicos. Afinal, analisar ls
output não é uma boa ideia. Seria melhor gerar seu f.txt de alguma outra forma, se possível. (Por exemplo, find
ou stat
, onde você tem melhor controle sobre o formato da lista.)