Bash 如何将两个文件合并为一个文件,每个文件都有列';谁的数据?

Bash 如何将两个文件合并为一个文件,每个文件都有列';谁的数据?,bash,shell,Bash,Shell,我有两个文件: 文件1包含: 1 2 3 4 John Sam George Ken 文件2包含: 1 2 3 4 John Sam George Ken 我想合并这些文件以创建一个文件(文件3) 我的想法是使用嵌套循环并为每行添加逗号 for x in file1 do echo "$x" >> file3 for y in file2 echo ",$y" >> file3 done done 有我需要使用的命令吗?如何使两个文件中的每个条目都显示在x和y的

我有两个文件:

文件1包含:

1
2
3
4
John
Sam
George
Ken
文件2包含:

1
2
3
4
John
Sam
George
Ken
我想合并这些文件以创建一个文件(文件3)

我的想法是使用嵌套循环并为每行添加逗号

for x in file1
do
echo "$x" >> file3
for y in file2
echo ",$y" >> file3
done
done

有我需要使用的命令吗?如何使两个文件中的每个条目都显示在x和y的一行上?

paste
是您要查找的命令:

$ paste -d',' file1 file2
1,John
2,Sam
3,George
4,Ken
如果需要逗号后的空格,可以使用以下技巧:

$ paste -d', ' file1 /dev/null file2
1, John
2, Sam
3, George
4, Ken

可以使用“粘贴”命令

:|paste -d',' file1 - | paste -d' ' - file2

下面是一个使用awk的:

$ awk 'NR==FNR{a[FNR]=$1;next}{print a[FNR] ".", $1}' file1 file2
1. John
2. Sam
3. George
4. Ken
同样,如果
文件1
确实是数字,您可以跳过它,只需:

$ awk '{print NR ",", $1}' file2
1, John
2, Sam
3, George
4, Ken