Вы не можете направить вывод в тот же файл, в который вы записываете.Причина в том, что оболочка открывает этот выходной файл для записи и, следовательно, делает его пустым.
Решение состоит в том, чтобы направить вывод во временный файл, а затем переместить временный файл в contacts_file
, если вы хотите заменить его..