Вывод строк из файла по одной с удалением - как?
Добавлено: 2008-04-22 21:49:18
Господа, доброго вечера.
Ситуация такая. Решил таки почистить почтовый сервер от хранящихся на нем сообщений с пометкой SPAM, бо места сожрано, чую, немало. Вяю скриптик, который будет пробегаться по директориям пользовательских ящиков, отлавливать письма, в которых есть заветное слово, затем отправлять имя файла письма в текстовичок и из него уже брать по одному в строке имя и переносить письмо в заветное место от глаз подальше. Затык образовался на том, как из файла выдергивать по строке для подстановки в качестве аргумента для команды mv.
Думал организовать такой цикл:
но при внимательном изучении выяснилось, что строчка удалять физически строки из spamletter-list.txt не намерена, засим ломаю голову. Подскажите пжста, в какую сторону ковырять маны?
Ситуация такая. Решил таки почистить почтовый сервер от хранящихся на нем сообщений с пометкой SPAM, бо места сожрано, чую, немало. Вяю скриптик, который будет пробегаться по директориям пользовательских ящиков, отлавливать письма, в которых есть заветное слово, затем отправлять имя файла письма в текстовичок и из него уже брать по одному в строке имя и переносить письмо в заветное место от глаз подальше. Затык образовался на том, как из файла выдергивать по строке для подстановки в качестве аргумента для команды mv.
Думал организовать такой цикл:
Код: Выделить всё
NUM=`sed -n '$=' spamletter-list.txt` #вычисляем количество строк в файле
# задаем цикл:
i=1
while [ $i -lt $NUM ]
do
mv [ tail -n 1 spamletter-list.txt ] ${spam-dir}
sed -e 1d spamletter-list.txt
i=`expr $i + 1`
done
Код: Выделить всё
sed -e 1d spamletter-list.txt