用不同的列合并linux中的两个文件

时间:2012-06-22 16:16:19

标签: bash sed awk

我在linux中有两个文件,第一个文件有4列,第二个文件有2列。我想将这些文件合并到一个新文件中,该文件包含文件1中的前3列和文件2中的第一列。我尝试了awk,但是文件2中的数据放在文件1下。

4 个答案:

答案 0 :(得分:37)

paste file1 file2 | awk '{print $1,$2,$3,$5}'

答案 1 :(得分:6)

不确定您希望从每个文件中添加哪些列,但这样的内容应该有效:

paste <file1> <file2> | awk '{print $1,$2,$3,$5}'

将从file1中挑选前三列,跳过第四列,然后从第二个文件中选择第一列。

答案 2 :(得分:2)

如果文件的行数相同,则可以执行以下操作:

awk '{ getline v < "file2"; split( v, a ); print a[2], $1, $3 }' file1

从文件1打印第1和第3列,从文件2打印第2列。

答案 3 :(得分:1)

you can try this one without paste command:
awk '{print $1}{print $2}{print $3}' file1 >> mergedfile
awk '{print $2}' file2 >> mergedfile