Тут корень проблемы в print > FILENAME Ты построчно читаешь файл и туже в него пишешь.
Это идеологически не правильно: весь модифицированный поток надо сохранять отдельно, и тогда некоректные выходы программы не повлекут за собой нарушения целостности исходных данных.
В догонку, по аналогии, у sed есть возможность редактировать исходный файл с сохранением и без сохранения backup'a, но второй вариант не рекомендуется по тем же самым соображениям:
from `man sed`: -I extension Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situ‐ ations where disk space is exhausted, etc.