如何将两个文件合并为一个,每个文件的数据为一列?

如何将两个文件合并为一个,每个文件的数据为一列?

我有两个文件:

文件1包含:

1
2
3
4

文件2包含:

John
Sam
George
Ken

我想将这些文件组合起来创建一个文件(file3)

1, John
2, Sam
3, George
4, Ken

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

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

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

答案1

您可以使用粘贴:

$ :|paste -d',' file1 - | paste -d' ' - file2
1, John
2, Sam
3, George
4, Ken

或者:

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

其中-d', '参数指定使用逗号和空格作为每个文件内容之间的分隔符。

答案2

另一种paste解决方案

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

答案3

sed 's/$/, /' file1 | paste -d '\0' - file2

答案4

你可以试试这个:

paste -d, file1 file2 > file3

输出(文件3):

1,John
2,Sam
3,George
4,Ken

相关内容