Я пишу сценарий bash, который должен получить заголовок (первые 10 байтов) файла, а затем в другом разделе получить все, кроме первых 10 байтов. Это двоичные файлы, и в первых 10 байтах они, скорее всего, будут содержать \0
символы "и \n
". Похоже, что большинство утилит работают с файлами ASCII. Как лучше всего решить эту задачу?
80
Ответы:
Чтобы получить первые 10 байтов, как уже отмечалось:
Чтобы получить все, кроме первых 10 байтов (по крайней мере, с GNU
tail
):источник
dd
Идея мне понравилась, но эта опция не требует изменения размера буфера, поэтому она хорошо работает с огромными файлами. Благодарю.head -c 10
делает здесь правильные вещи.источник
Вы можете использовать
dd
команду для копирования произвольного количества байтов из двоичного файла.dd if=infile of=outfile1 bs=10 count=1 dd if=infile of=outfile2 bs=10 skip=1
источник
dd
не надежен. Он может читать меньше байтов, чем запрошено, по разным причинам.{ printf a; sleep 1; printf b; } | dd bs=2 count=1 2>/dev/null | wc -c