Concatene quatro arquivos binários usando um padrão alternado no Linux

0

Eu preciso concatenar quatro arquivos binários, que não são de texto. Vamos dizer que eu tenho quatro arquivos:

file1:
AAAA
arquivo2:
BBBB
file3:
CCCC
file4:
DDDD

Agora quero que meu arquivo resultante seja semelhante a: ABCDABCDABCDABCD. Então eu quero alternar cada byte. Eu também gostaria de poder alternar cada n bytes, alternando cada 1,2,3,4, etc bytes.

Até agora, a maioria das informações que eu pesquisei lida com arquivos de texto e usa cat & pasta que parece funcionar apenas com linhas de texto. Eu também não consigo encontrar nenhum dado sobre concatenação alternada para mais de dois arquivos.

    
por Mister Tea 23.08.2015 / 19:36

1 resposta

1

Isso deve funcionar. Defina each para o número de bytes a serem lidos a cada vez.

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
    
por 23.08.2015 / 20:36