#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 - это один единственный системный вызов. Так что никакого рантайма за собой тащить не надо.
Комментариев нет:
Отправить комментарий