$ cat fileA fileB | sort -k3,3 -k4,4nr | sort -k3,3 -u
a b c 10
d e f 15
g h i 15
j k l 20
p l m 35
w x z 40
Este é um pipeline com três partes:
- Concatenar
fileA
comfileB
. -
Classifique o arquivo concatenado em ordem numérica decrescente com base na quarta coluna para cada valor exclusivo na terceira coluna. O resultado deste passo é
a b c 10 d e f 15 d e f 11 g h i 15 j k l 20 j k l 15 p l m 35 w x z 40
-
Classifique novamente, mas remova as duplicatas e use apenas a terceira coluna como chave de classificação. Como isso deixará a linha com a primeira ocorrência encontrada da chave de ordenação, mas descartará as linhas com chaves de ordenação duplicadas (e com valores menores na quarta coluna, graças ao primeiro ordenamento), isso dará nos o resultado desejado.
Essa abordagem desconsidera completamente o conteúdo das duas primeiras colunas.