Как объединить два файла в соответствующей строке?

9

Теперь у меня есть два файла:

aaaa.txt:

a=0;
b=1;
c=2;

bbbb.txt:

d=3
e=4
f=5

Я хочу , чтобы объединить aaaa.txtи bbbb.txtс cccc.txt.

cccc.txt следующим образом:

a=0;d=3
b=1;e=4
c=2;f=5

Итак, что я могу сделать для этого?

binghenzq
источник

Ответы:

13

Вы можете использовать пасту для этого:

paste -d '\0' aaaa.txt bbbb.txt > cccc.txt

Из вашего вопроса выясняется, что первый файл содержит ;в конце. Если это не так, вы можете использовать это как разделитель, используя -d ';'вместо этого.

Обратите внимание, что вопреки тому, что можно подумать, -d '\0'это не вставка с символом NUL в качестве разделителя, а с пустым разделителем. Это стандартный способ указать пустой разделитель. Некоторые pasteреализации, такие как GNU, pasteдопускают paste -d ''это, но они не являются ни стандартными, ни переносимыми (многие другие реализации сообщат об ошибке отсутствующего разделителя, если вы используете paste -d '').

Крис Даун
источник
@ Крис Даун - Большое спасибо, это работает. Кстати, еще один вопрос: awk '{sed' s /.*,/ 999 / g '}' cccc.txt, почему он возвращает awk: {sed s /.* , / 999 / g} awk: ^ синтаксическая ошибка. Что с этим не так?
Binghenzq
Я не совсем уверен, что вы пытаетесь сделать, но вы не можете просто передать sed в awk, как это ...
Крис Даун
@ Крис Даун - Тогда я понял.
Binghenzq
Пожалуйста, задавайте отдельные вопросы, а также отдельные вопросы. Это делает их полезными для последующих пользователей (можно найти!).
vonbrand