Можно ли это сделать как-то более "красиво"? без временного файла хотя бы... (tac .wget-list | head -n-1 | tac >.wget-list то работает, то затирает файл)
Вообще-то команды в конвейере выполняются одновременно. поэтому файл в таком случае открывается _одновременно_ на чтение и на запись. Естественно, ничего хорошего от этого ожидать не стОит. А стоит использовать альтернативные варианты: или временный файл, или что-ито вроде, к примеру, того же sed -i.