Предполагая, что ваши имена никогда не содержат пробелов и что ваш names.txt
файл имеет заголовок в первой строке, как показано, вы можете сделать:
tail -n +2 names.txt | while read old new; do
mv -i "$old" "$new"
done
tail -n +2
напечатает все строки файла, начиная со второй, поэтому заголовок будет пропущен. Затем опция -i
для GNU mv
говорит ему запрашивать вас перед перезаписью существующего файла (на случай конфликта имен ).
Вы можете протестировать скрипт с помощью
procmail -m VERBOSE=yes recipe.rc <message.eml
Конечно, пути к файлу рецепта и/или образцу сообщения могут быть абсолютными или относительными. С помощью VERBOSE=yes
вы получаете подробное ведение журнала (при стандартной ошибке, если вы не указали другое место назначения с помощью LOGFILE
в файле задания ); с -m
вы избегаете доставки в DEFAULT
, если не срабатывает рецепт.
Если рецепт срабатывает и у него есть побочные эффекты, они все еще будут там, хотя вы часто можете организовать свой код так, чтобы доставка происходила в отдельное место, когда определенная переменная установлена, чтобы облегчить отладку без заполнения вашего кода. живые почтовые папки с тестовыми сообщениями.
Как бы там ни было, .eml
плохо стандартизирован, хотя вы, вероятно, имеете в виду формат RFC5322 (, урожденный 822 ), а это именно то, что ожидает Procmail. Однако существует ряд программ, которые используют расширение .eml
для совершенно разных форматов.
Дополнительные советы по отладке см. также вhttp://www.iki.fi/era/mail/procmail-debug.html