【发布时间】:2012-06-24 23:39:07
【问题描述】:
我在 linux 中有两个文件,第一个文件有 4 列,第二个文件有 2 列。我想将这些文件合并到一个新文件中,该文件包含文件 1 的前 3 列和文件 2 的第一列。我尝试了 awk,但文件 2 中的数据放在文件 1 下。
【问题讨论】:
-
如果您提供输入文件的示例以及迄今为止您尝试过的内容的描述,这将非常有帮助。
我在 linux 中有两个文件,第一个文件有 4 列,第二个文件有 2 列。我想将这些文件合并到一个新文件中,该文件包含文件 1 的前 3 列和文件 2 的第一列。我尝试了 awk,但文件 2 中的数据放在文件 1 下。
【问题讨论】:
paste file1 file2 | awk '{print $1,$2,$3,$5}'
【讨论】:
awk '{print $1","$2","$3}' 表示逗号分隔值
如果文件的行数相同,您可以执行以下操作:
awk '{ getline v < "file2"; split( v, a ); print a[2], $1, $3 }' file1
从文件 1 中打印第 1 列和第 3 列,从文件 2 中打印第 2 列。
【讨论】:
不确定您想要从每个文件中获得哪些列,但这样的事情应该可以工作:
paste <file1> <file2> | awk '{print $1,$2,$3,$5}'
将从file1 中选取前三列,跳过第四列,然后从第二个文件中选取第一列。
【讨论】:
you can try this one without paste command:
awk '{print $1}{print $2}{print $3}' file1 >> mergedfile
awk '{print $2}' file2 >> mergedfile
【讨论】: