Ребят, помогите пожалуйста. Имеется скрипт небольшой на bash, который извлекает из файлов емейлы. Хотелось бы сортировку сделать: убрать повторяющиеся строки и отсортировать по алфавиту. Моя же сортировка работает, когда файл небольшого размера :/. Я совсем не кодер, так что его скорее всего можно ещё и оптимизировать. :)
dir=/var/article/2014/$MM/$DD
echo "Ищем в директории $dir"
#Поиск директорий по имени файлов
find $dir -type f -name 'Unbenannt-[1-4].eml' | wc -l
find $dir -type f -name 'Unbenannt-[1-4].eml' > ~/emaildir.log
#Ищем по директориям файлов из файла emaildir.log адреса, вырезая лишнее
while read line
do
echo "$line"
grep -r 'To: "' $line |awk '{print $2}'| tr -d \" >> ~/email_2014.$MM.$DD
grep -r 'Final-recipient: RFC822;' $line |egrep -v '@gu.ru|@ru.ru' |awk '{print $3}' >> ~/email_2014.$MM.$DD
done < "emaildir.log"
sort -u ~/email_2014.$MM.$DD > ~/email_2014.$MM.$DD.s
#Тут должен быть заголовок вставлен, но тоже не работает
echo "Day $DD $MM 2014" | cat - ~/email_2014.$MM.$DD.s
Короче говоря, sort -u не справляется с большим объёмами. Он только лишь сортирует по алфавиту, но оставляет повторы емейлов.