Мне нужно объединить четыре двоичных, то есть нетекстовых файла. Допустим, у меня есть четыре файла:

file1:
AAAA
file2:
BBBB
file3:
КПКГ
file4:
DDDD

Теперь я хочу, чтобы мой полученный файл выглядел следующим образом: ABCDABCDABCDABCD. Поэтому я хочу чередовать каждый байт. Я также хотел бы иметь возможность чередовать каждые n байтов, что означает чередование каждые 1,2,3,4 и т.д. Байтов.

Пока что большая часть информации, которую я искал, касается текстовых файлов и использует cat & paste, которая работает только со строками текста. Я также не могу найти какие-либо данные о чередующемся объединении более двух файлов.

1 ответ1

1

Это должно работать. Установите в each число байтов для чтения каждый раз.

len=$(stat -c %s file1)
each=1
while [ $len -gt 0 ]
do 
 dd bs=$each count=1 <&5
 dd bs=$each count=1 <&6
 dd bs=$each count=1 <&7
 dd bs=$each count=1 <&8
 let len=len-$each
done 5<file1 6<file2 7<file3 8<file4 2>/dev/null

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .