Можете ли вы жить с упорядоченным списком в алфавитном порядке:
echo "red apple
> green apple
> green apple
> orange
> orange
> orange
> " | sort -u
?
green apple
orange
red apple
или
sort -u FILE
-u означает уникальность и уникальностьдостигается только путем сортировки.
Решение, которое сохраняет порядок:
echo "red apple
green apple
green apple
orange
orange
orange
" | { old=""; while read line ; do if [[ $line != $old ]]; then echo $line; old=$line; fi ; done }
red apple
green apple
orange
и с файлом
cat file | {
old=""
while read line
do
if [[ $line != $old ]]
then
echo $line
old=$line
fi
done }
Последние два удаляют только дубликаты, которыеследуйте немедленно - что соответствует вашему примеру.
echo "red apple
green apple
lila banana
green apple
" ...
Напечатает два яблока, разделенных бананом.