Всего имеем 9 столбцов ($1-$9), работаем со столбцом $2 (FromIp). Аналогично можно работать со столбцом $4 (ToIp). Либо сразу по двум, сдвигая их в конец таблицы и изменяя уcловия 'сортировки | уникальности'.
Для столбца $2 (FromIp)...
uniq работает с разделителем "пробел", формат csv - разделение полей "запятой". Заменим все запятые пробелами, НО! Первое поле и так содержит пробел, поэтому заменим сначала все пробелы на "-" и только после этого, получив цельный столбец $1 заменим запятые на пробелы:
clear; cat ip.csv | tr ' ' '-' | tr ',' ' '
В uniq можно сравнивать строки, начиная с определённого столбца. Чтобы сравнение было чистым (только столбец №2), без учета последующих столбцов (слева на право), поменяем нужный столбец ($2) с последним ($9), чтобы он был финальным для сравнения uniq и введём признак уникальности по этому столбцу (теперь уже $9) с предварительной сортировкой строк (-f8, потому, что $9 - следующий):
cat ip.csv | tr ' ' '-' | tr ',' ' ' | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}' | sort -k9 | uniq -f8
И вернём столбцы на свои места, как было:
clear; cat ip.csv | tr ' ' '-' | tr ',' ' ' | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}' | sort -k9 | uniq -f8 | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}'
Значит варианты такие:
# uniq -f8 - выводить дубликаты IP единожды
clear; cat ip.csv | tr ' ' '-' | tr ',' ' ' | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}' | sort -k9 | uniq -f8 | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}'
# uniq -u -f8 - не выводить дубликаты IP
clear; cat ip.csv | tr ' ' '-' | tr ',' ' ' | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}' | sort -k9 | uniq -u -f8 | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}'
# uniq -d -f8 - выводить только дубликаты IP
clear; cat ip.csv | tr ' ' '-' | tr ',' ' ' | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}' | sort -k9 | uniq -d -f8 | awk '{print $1,$9,$3,$4,$5,$6,$7,$8,$2}'
Как-то так, видимо...
MSI H81M-ECO, Intel Core i3-4130T, Intel HD Graphics 4400 | MgaRemix-9 Budgie 10.8.1 x86_64 + Windows 10