Использование sort
и awk
:
sort -t',' -k1 input.csv |awk -F, -v OFS=, '($1 in a) {gsub($1,"") } !($1 in a) {a[$1]=$1}1'
01/01/1960,"Gates, Baleee"
,"Gates, Benny"
,"Gates, Bill"
,"Torvalds, Linus"
04/20/1960,"Wozniac, pitor"
,"Woz, Steve"
Когда input.csv выглядит следующим образом:
-->cat input.csv
01/01/1960,"Torvalds, Linus"
01/01/1960,"Gates, Bill"
01/01/1960,"Gates, Benny"
04/20/1960,"Woz, Steve"
01/01/1960,"Gates, Baleee"
04/20/1960,"Wozniac, pitor"
Объяснение: Здесь FS
задается запятойи для каждой строки первый столбец сохраняется в массиве с именем a
, если он еще не существует и, если он уже присутствует, замените первый столбец пустым, используя функцию gsub
.sort
используется для приведения дат в последовательности.