我在 linux 中有两个文件,第一个文件有 4 列,第二个文件有 2 列。我想将这些文件合并到一个新文件中,该文件包含文件 1 的前 3 列和文件 2 的第一列。我尝试了 awk,但文件 2 中的数据放在文件 1 下。
问问题
60393 次
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 回答