Linux'ta alternatif desen kullanarak dört ikili dosyayı birleştirin


0

Metin olmayan dosyaları ifade etmek için dört ikili dosya birleştirmem gerekiyor. Diyelim ki dört dosyam var:

dosya1:
AAAA
Dosya2:
BBBB
dosya3:
CCCC
file4:
DDDD

Şimdi sonuç dosyamın şöyle görünmesini istiyorum: ABCDABCDABCDABCD. Bu yüzden her baytı değiştirmek istiyorum. Ayrıca her 1,2,3,4, vb bayt alternatif anlamına gelen her n bayt alternatif edebilmek istiyorum.

Şimdiye kadar, araştırdığım bilgilerin çoğu metin dosyalarıyla ilgileniyor ve yalnızca metin satırlarıyla çalıştığı anlaşılan cat & paste'i kullanıyor. Ayrıca ikiden fazla dosya için alternatif birleştirme hakkında herhangi bir veri bulamıyorum.


Bunu yapmak için hazır bir aracın mevcut olduğundan şüpheliyim, ancak bunu yapmak için bir kabuk betiğini birlikte yazmak oldukça kolaydır. Tüm dosyalar tam olarak aynı boyutta mı?
Bir CVn

@ MichaelKjörling Evet, dosyalar aynı boyuttadır.
Mister Tea

Yanıtlar:


1

Bu çalışmalı. eachHer seferinde okunacak bayt sayısını ayarlayın .

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.