Как добавить столбец из файла в другой файл

У меня есть файл с двумя столбцами как

1 1
2 3
3 4

и файл с одним столбцом как

6
7
9

Я хотел бы добавить второй файл в первый. Выход должен быть:

1 1 6
2 3 7
3 4 9

Ответ 1

$ pr -mts' ' file1 file2
1 1 6
2 3 7
3 4 9

$ paste -d' ' file1 file2
1 1 6
2 3 7
3 4 9

Ответ 2

awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' file1 file2

Примечание. Работает с файлами одинаковой длины. Если длина файла "различна", перейдите к решению sudo_O.


Просто для этого, вот команда awk, которая, как мне кажется, должна имитировать paste. Чисто для удовольствия, хотя, если бы я был вами, я все равно поеду с помощью sudo_O (или может быть нет!)

awk 'NR==FNR{a[++y]=$0;next}{b[++x]=$0}
END{z=x>y?x:y;while(++i<=z){print a[i],b[i]}}' file1 file2

Ответ 3

Чистый bash решение может быть

exec 3<twofile
while read x; do read -u 3 y; echo $x $y; done <onefile

Infiles:

cat >onefile <<XXX
1 1
2 3
3 4
XXX
cat >twofile <<XXX
6
7
9
XXX

Вывод:

1 1 6
2 3 7
3 4 9