Вот простой скрипт Awk.
awk -F '|' '$2=="456" && $3=="789" { if (!a[$1]++) count++ }
END { print count }' file
В вашем примере данных содержатся 5 различных значений в столбце 1 с этими ограничениями.
Если вы хотите передать значения в качестве параметров,
c2="456"
c3="789"
awk -F '|' -v col2="$c2" -v col3="$c3" '$2==col2 && $3==col3 {
if (!a[$1]++) count++ }
END { print count }' file
Массив a
собирает ключи из столбца 1, который мы уже видели.Если массив уже не содержит значения первого столбца, мы добавляем 1 к count
.