The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Shell"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Shell"  +/
Сообщение от ZeND on 23-Июн-13, 13:52 
Здравствуйте !
Подскажите, как добавить несколько символов в начало файла не меняя размер самого файла, те чтобы данные перезаписывали начало файла.
Ответить | Правка | Cообщить модератору

Оглавление

  • Shell, XAnder, 08:22 , 24-Июн-13, (1) +1  
    • Shell, allez, 10:06 , 21-Июл-13, (2)  
      • Shell, XAnder, 10:00 , 22-Июл-13, (3)  

Сообщения по теме [Сортировка по времени | RSS]


1. "Shell"  +1 +/
Сообщение от XAnder (ok) on 24-Июн-13, 08:22 
> Подскажите, как добавить несколько символов в начало файла не меняя размер самого
> файла, те чтобы данные перезаписывали начало файла.

Например, так:

$ echo 0123456789 > test
$ echo -n 'abc' | dd of=test conv=notrunc
0+1 записей считано
0+1 записей написано
скопировано 3 байта (3 B), 0,0145526 c, 0,2 kB/c
$ cat test
abc3456789
$ _

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Shell"  +/
Сообщение от allez (ok) on 21-Июл-13, 10:06 
>[оверквотинг удален]
>> файла, те чтобы данные перезаписывали начало файла.
> Например, так:
> $ echo 0123456789 > test
> $ echo -n 'abc' | dd of=test conv=notrunc
> 0+1 записей считано
> 0+1 записей написано
>  скопировано 3 байта (3 B), 0,0145526 c, 0,2 kB/c
> $ cat test
> abc3456789
> $ _

Прошу прощения за некоторую некротичность моего поста. :-)
Хочу только добавить, что юникод, в частности - UTF-8, может при определенных условиях
доставить неприятности. Например, при использовании символов, выходящих за пределы первой
половины таблицы ASCII, получим следующее:


$ echo "0123456789" > test
$ echo -n 'абв' | dd of=test conv=notrunc
0+1 записей считано
0+1 записей написано
скопировано 6 байт (6 B), 6,288e-05 c, 95,4 kB/c
$ cat test
абв6789

Размер файла остается прежним, а вот количество символов в нем меняется. Но если этот
момент не критичен, то его можно игнорировать. :-)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Shell"  +/
Сообщение от XAnder (ok) on 22-Июл-13, 10:00 
> Хочу только добавить, что юникод, в частности - UTF-8, может при определенных условиях доставить неприятности...

Кстати, да. Это вы точно заметили. При использовании кодировок с нефиксированным размером символа (UTF-8 как пример) задача в общем случае не решается. Это если конечно понимать её формулировку, как "заменить первые символы файла заданными символами, не меняя размер файла". Строка замены может иметь, к примеру, 5 байт (не символов), а файл может начинаться с трёх двухбайтовых символов. Тогда "тупая" замена испортит третий символ файла, а "умная" - изменит размер файла.

Хотя тоже думаю, что вопрошающему это не критично.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру