Страницы

Поиск по вопросам

понедельник, 23 декабря 2019 г.

Удаление определенного количества байт с конца файла shell

#linux #shell


Необходимо средствами shell удалить с конца файла N-ое количество символов.

Использовал truncate -s $(( $(stat -c '%s' $file) - $n )) $file.

Проект переехал на BusyBox. truncate там нет. 
Есть идеи как еще это можно реализовать?
    


Ответы

Ответ 1



можно скопировать нужное количество байт (рассчитать ведь не сложно) от начала первого файла во второй с помощью программы dd: $ dd if=первый.файл of=второй.файл bs=1 count=количество можно пересобрать busybox с необходимой функциональностью: https://github.com/akretion/busybox-remastering/blob/master/coreutils/truncate.c

Ответ 2



Написать собственный truncate на C, откомпилировать, таскать с собой. Объясняю, почему C, а не питон или еще какая пакость - truncate - это один единственный системный вызов. Так что никакого рантайма за собой тащить не надо.

Комментариев нет:

Отправить комментарий