在 Linux 中使用交替模式连接四个二进制文件

在 Linux 中使用交替模式连接四个二进制文件

我需要连接四个二进制文件(即非文本文件)。假设我有四个文件:

文件 1:
AAAA
文件 2:
BBBB
文件 3:
CCCC
文件 4:
DDDD

现在我希望生成的文件看起来像:ABCDABCDABCDABCD。所以我想交替每个字节。我还希望能够每 n 个字节交替一次,即每 1、2、3、4 等字节交替一次。

到目前为止,我搜索到的大部分信息都与文本文件有关,并且使用 cat & paste,这似乎仅适用于文本行。我也找不到有关两个以上文件交替连接的任何数据。

答案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

相关内容