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

时间:2017-08-19 20:34:30

标签: bash shell

我有两个文件:

file1包含:

1
2
3
4

file2包含:

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显示在两个文件中的每个条目的一行上?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

这是使用awk的人:

$ awk 'NR==FNR{a[FNR]=$1;next}{print a[FNR] ".", $1}' file1 file2
1. John
2. Sam
3. George
4. Ken

然后,如果file1确实是数字,你可以跳过它,只是:

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

答案 2 :(得分:1)

您可以使用粘贴命令

return (
<Switch>
<Route path='/dashboard' render={() => (
        <Dashboard //all the props />
)}/>
more routes..
</Switch>
)

:|paste -d',' file1 - | paste -d' ' - file2
相关问题