sort -u file1 file2 > file1
Не собирается делать то, что вы говорите, вы хотите это сделать Вы пробовали это из командной строки?
После того, как вы запустите эту команду, file1 не будет содержать ничего, что было в file1 для начала, потому что перенаправление закроет file1, прежде чем sort начнет действовать на него.
sort -u file1 file2 >file3; mv file3 file1
Кажется, вы хотите использовать system (), что случилось, когда вы попробовали это? Вы получили какие-либо сообщения об ошибках?