Если вам нужен нулевой байт отступы, вы можете использовать head
с обоими фактические файлы и /dev/zero
(для заполнения). Сначала создайте тестовые файлы:
pax> echo -n 1 >a.txt ; echo -n 12 >b.txt ; echo -n 1234 >c.txt
Тогда следующий код предоставит вам то, что вы хотите.
pax> (head -c1 a.txt ; head -c3 /dev/zero ;
head -c2 b.txt ; head -c2 /dev/zero ;
head -c4 c.txt) | od -xcb
0000000 0031 0000 3231 0000 3231 3433
1 \0 \0 \0 1 2 \0 \0 1 2 3 4
061 000 000 000 061 062 000 000 061 062 063 064
0000014
Вы можете видеть, что прокладка была помещена в выходной поток. Таким образом, сценарий, чтобы сделать это так же просто, как:
(head -c1 a.txt ; head -c3 /dev/zero) >d.txt
(head -c2 b.txt ; head -c2 /dev/zero) >>d.txt
(head -c4 c.txt ) >>d.txt
Или, если вы на самом деле не уход то, что идет в области отступа, вы можете использовать один вкладыш, как:
cat [abc].txt | sed 's/^\(.\)\(..\)/\1___\2__/' >d.txt
Это создаст файл, содержащий:
1___12__1234
ли эти файлы имеют только одну строку каждый или является 'a.txt' (например) 100 строк одного символа каждого? – paxdiablo
Привет, Paxdiablo, каждый файл-член также является двоичным файлом –
Спасибо всем за то, что ответили на вопрос! –