O mais curto:
awk -F'\t' '!a[$1]++' file
A saída:
A 5
B 2
C 4
D 99
-
!a[$1]++
- garante impressão de linha ao encontrar o primeiro valor exclusivo da primeira coluna
Eu sei que isso deve ser fácil, googling mas não foi bem-sucedido. Desculpe por isso.
Eu gostaria de imprimir a primeira linha de grupos definida o valor na primeira coluna. Delimitador é uma guia.
Entrada:
A 5
A 3
B 2
B 1
B 77
C 4
C 10000
D 99
Saída:
A 5
B 2
C 4
D 99
Algo parecido pode fazer o trabalho:
awk -F\t 'BEGIN {A=""} {if ($1!=A) { print $0; A=$1}}' input_file
Quando você inicializa a variável A selecione o valor inicial que não está na lista de existente na coluna 1
Aqui estão duas opções não-awk:
sort u foo -k 1,1
Use sort
exclusivamente para o recurso -u
( --unique
). Use apenas o primeiro caractere ( -k 1,1
) para comparação.
rev foo | uniq -f 1 | rev
Use uniq
. A opção -f
permite apenas especificar um campo de início para comparação, então usamos um legerdemain para inverter primeiro ( rev
) a entrada antes de uniq
e, em seguida, rev
dessa saída novamente.
Tags awk