![在 Linux 中使用交替模式连接四个二进制文件](https://linux22.com/image/1463089/%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%BA%A4%E6%9B%BF%E6%A8%A1%E5%BC%8F%E8%BF%9E%E6%8E%A5%E5%9B%9B%E4%B8%AA%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6.png)
我需要连接四个二进制文件(即非文本文件)。假设我有四个文件:
文件 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