У меня есть файл emails.csv
:
>cat emails.csv
1,joe,joe@gmail.com,32
2,jim,jim@hotmail.fr,23
3,steve,steve_smith@temporary.com.br,45
4,joseph,joseph@protonmail.com,23
5,jim,jim29@bluewin.ch,29
6,hilary,hilary@bluewin.ch,32
Я хочу сохранить только первую запись, когда нахожу другую запись с тем же последним полем (возраст) - уникальные записи, основанные на последнем поле.Вывод, который мне нужен:
1,joe,joe@gmail.com,32
2,jim,jim@hotmail.fr,23
3,steve,steve_smith@temporary.com.br,45
5,jim,jim29@bluewin.ch,29
Следующий скрипт может выполнить фильтрацию:
> cut -d, -f4 emails.csv |
> while read age1;
> do line=1;continue_loop=1 cut -d, -f4 emails.csv | while read age;
> do if [[ $age1 == $((age)) ]] && [[ $continue_loop == $1 ]];
> then cat emails.csv | head -n $line | tail -n 1;
> continue_loop=0; fi;
> let line++;
> done;
> done | sort
Однако я ищу решение, которое не требует двухциклы, поскольку это кажется немного сложным.