Как перезаписать файл UNIX?

Есть код, нужно перезаписать результат в этот же файл

exec ('sort -u -b -n 1.txt > uTest_1.txt');

Сейчас перезаписывает в uTest_1.txt, а нужно в 1.txt
  • Вопрос задан
  • 2527 просмотров
Пригласить эксперта
Ответы на вопрос 2
bk0011m
@bk0011m
Системный администратор
А так:
exec ('sort -u -b -n 1.txt -o 1.txt');
-o - этим указываем файл куда сохранить результат. На экране ничего не будет

или так:
exec ('sort -u -b -n 1.txt > uTest_1.txt && mv uTest_1.txt 1.txt');
Ответ написан
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
В общем случае -- никак, только писать во временный файл, а потом его переименовать.
В частном случае sort можно использовать -o, о которой здесь явно сказано, что имя указанного файла может совпадать с именем одного из входных файлов. (Но не всегда, в частности, при наличии ключа -m gnu sort может перезаписать входной файл до того как он будет прочитан).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы