сжать (усечь) файл от начала в Linux - PullRequest
6 голосов
/ 24 февраля 2011

Возможно ли в Linux (и / или на другом Unix) «сжать» файл с самого начала?Я хотел бы использовать это для постоянной очереди (никакая существующая реализация не удовлетворяет моим потребностям).Я думаю, что с конца файла это возможно с помощью truncate ().

Ответы [ 2 ]

0 голосов
/ 25 августа 2015

Да, вы можете использовать cut или tail для удаления частей файла.

cut -b 17- input_file
tail -c +17 input_file

Это выведет содержимое файла input_file, начиная с 17-го байта, эффективно удаляя первые 16 байтов файла. Обратите внимание, что пример cut также добавит новую строку в вывод.

0 голосов
/ 09 июля 2011

Я урезал файл, заданный в качестве аргумента, до 64 000 000 байт, используя следующий скрипт Python:

#!/usr/bin/env python

import sys
import os

file = sys.argv[1]
f = os.open(file, os.O_RDWR)
os.ftruncate(f, 64000000)
os.close(f)
...