Предполагая, что они последовательны, и вы хотите удалить последующие, следующий скрипт awk сделает это:
awk -F'|' 'NR==1 {print;x=$2} NR>1 {if ($2 != x) {print;x=$2}}'
Работает, печатая первую строку и сохраняя второй столбец. Затем для последующих строк он пропускает те, в которых сохраненное значение и второй столбец совпадают (если они различаются, он печатает строку и обновляет сохраненное значение).
Если они не последовательны, я бы выбрал решение Perl, где вы поддерживаете ассоциативный массив для обнаружения и удаления дубликатов - я бы написал его, но моя трехлетняя дочь только что проснулась, сейчас полночь, и у нее есть простуда - увидимся завтра, если я переживу ночь: -)