Оболочка Linux управляет для читения/печатения блока файла блоком

Существует ли стандартная команда Linux, которую я могу использовать для чтения блока файла блоком? Например, у меня есть файл, размер которого составляет 6 КБ. Я хочу читать/печатать первый 1 КБ и затем 2-й 1 КБ... Кажется работой привычки кошки/головы/хвоста в этом случае.

Большое спасибо.

5
задан Samuel Neff 5 March 2010 в 19:20
поделиться

5 ответов

dd сделает это

dd if=your_file of=output_tmp_file bs=1024 count=1 skip=0

А затем skip=1 для второго куска, и так далее.

Затем вам просто нужно прочитать файл output_tmp_file, чтобы получить чанк.

4
ответ дан 18 December 2019 в 13:13
поделиться

split может разделить файл на части по заданному количеству байт

2
ответ дан 18 December 2019 в 13:13
поделиться

Вы действительно пытаетесь прочитать текстовый файл? Как твоими глазами? Попробуйте на меньше или на больше

1
ответ дан 18 December 2019 в 13:13
поделиться

вы можете использовать fmt

eg 10bytes

$ cat file
a quick brown fox jumps over the lazy dog
good lord , oh my gosh

$ tr '\n' ' '<file | fmt -w10 file
a quick
brown fox
jumps
over
the lazy
dog good
lord , oh
my gosh

каждая строка - 10 символов. Если вы хотите прочитать второй кусок, передайте его инструментам типа awk ..eg

$ tr '\n' ' '<file |  fmt -w10 | awk 'NR==2' # print 2nd chunk
brown fox

Чтобы сохранить каждый кусок в файл, (или вы можете использовать split с -b )

$ tr '\n' ' '<file |  fmt -w10 | awk '{print $0 > "file_"NR}'
0
ответ дан 18 December 2019 в 13:13
поделиться

Вы можете сделать это с помощью read -n в цикле:

while read -r -d '' -n 1024 BYTES; do
    echo "$BYTES"
    echo "---"
done < file.dat
7
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: