18

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

4

4 回答 4

45
paste file1 file2 | awk '{print $1,$2,$3,$5}'
于 2012-06-22T16:25:15.750 回答
9

Not sure which columns you want from each file, but something like this should work:

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

The first three columns would be picked from file1, and the fourth skipped, then pick the first column from the second file.

于 2012-06-22T16:30:16.347 回答
2

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

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

打印文件 1 中的第 1 列和第 3 列以及文件 2 中的第 2 列。

于 2012-06-22T16:25:32.287 回答
1
you can try this one without paste command:
awk '{print $1}{print $2}{print $3}' file1 >> mergedfile
awk '{print $2}' file2 >> mergedfile
于 2014-12-10T10:32:01.393 回答