URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7871
[ Назад ]

Исходное сообщение
"Вывод в начало файла"

Отправлено STX , 31-Янв-09 01:57 
Давно мучаюсь вопросом, существует ли какой-либо способ перенаправления вывода в начало файла в BASH (без потери содержимого)?
К примеру

cat >> "/user/file.conf" <<EOF
новый текст в начало файла
EOF

Как можно изменить так, чтобы вставка произошла в начало файла?
Спасибо.


Содержание

Сообщения в этом обсуждении
"Вывод в начало файла"
Отправлено angra , 31-Янв-09 02:31 
Это элементарно, достаточно применить мозг. Создаем временный файл в него направляем вывод, по окончанию добавляем в него содержимое требуемого файла и переименовываем.

"Вывод в начало файла"
Отправлено vic , 31-Янв-09 03:20 
>Это элементарно, достаточно применить мозг. Создаем временный файл в него направляем вывод,
>по окончанию добавляем в него содержимое требуемого файла и переименовываем.

Еще добавлю:

Все бы ничего, но если файл заголовок которого надо поменять очень большой, гигабайты там какие-нить, то будет больно гонять большие объемы. Если перезаписываемая инфа не предполагает сдвига, т.е. файл в итоге не должен увеличиться/уменьшиться в размере, то можно попробовать использовать такую конструкцию:


echo "oldheader+body" >file.txt ## создали файл
echo -n "newheader" 1<>file.txt ## переписали только заголовок (операция [n]<>word)

Я такой конструкцией никогда не пользовался и не знаю степень ее портируемости и т.п.


"Вывод в начало файла"
Отправлено const86 , 31-Янв-09 10:19 
echo new_header | dd of=file conv=notrunc