В вашем цикле вы можете проверить, использует ли кто-то комнату комнату с
if test $(grep ";$room;" -c file) -eq 1
, она войдет в условие if, только если есть совпадение с одной комнатой, благодаря регулярному выражению. опция -c
подсчитывает количество строк, возвращаемых регулярным выражением
Итак, для вашего примера, если вы хотите отображать строки только в том случае, если их комната уникальна, вы можете сделать
input="collaborateurs.csv"
while read line; do
room=$(echo $line | cut -d \; -f 4)
if test $(grep ";$room;" -c file) -eq 1
then echo "$line"
fi
done < "$input"
Примечание: это предполагает, что никакое другое поле не может содержать идентификационный номер комнаты. Если это возможно, вам понадобится другое регулярное выражение, например .*;.*;.*;$room;.*;
Надеюсь, это поможет!