Seria algo assim? [mar...@localhost ~]$ tr -s "[:space:]" <<end > 6361 34662277560 46606975 2 > 6361 36612632553 46606975 2 > 6361 36620505642 46606975 2 > end 6361 34662277560 46606975 2 6361 36612632553 46606975 2 6361 36620505642 46606975 2 [mar...@localhost ~]$ tr -s "[:space:]" <<end | cut -f "1,3,4" -d " " > 6361 34662277560 46606975 2 > 6361 36612632553 46606975 2 > 6361 36620505642 46606975 2 > end 6361 46606975 2 6361 46606975 2 6361 46606975 2 [mar...@localhost ~]$ tr -s "[:space:]" <<end | cut -f "1,3,4" -d " " | uniq -c > 6361 34662277560 46606975 2 > 6361 36612632553 46606975 2 > 6361 36620505642 46606975 2 > end 3 6361 46606975 2 [mar...@localhost ~]$
Se for é só trocar <<end pelo método de entrada que você quiser, como "tr... <arquivo.txt" ou "./script ... |tr..." e -f "1,3,4" pelos campos desejados. > -----Mensagem original----- > De: Eri Ramos Bastos > > Olá, lista > > Estou tentando encontrar dados parcialmente duplicados num > arquivo, mas estou levando uma boa surra. > Foi bem fácil encontrar os totalmente duplicados usando sort e > awk, mas não consigo extrair os parcialmente duplicados. > > Os dados estão nesse formato aqui: http://pastebin.com/m79c990bf > > O que eu quero saber é quais dados estão sendo repetidos na > primeira, segunda e última coluna, mas são únicos na terceira > coluna. Preciso contar esses dados baseado na segunda coluna, de > forma que no arquivo exemplo o resultado do script seria: > > $ ./script raw-file.txt > 6361 34662277560 46606975 2 > 6361 36612632553 46606975 2 > 6361 36620505642 46606975 2 > > > Alguma dica? > > []'s > Eri >