【发布时间】:2019-06-30 10:23:05
【问题描述】:
我有 2 个制表符分隔的文件,例如这些小示例:
例子1:
RBM3 1517 993 -0.611355
RBM4 142 142 0
PRKAG1 146 73 -1
MORF4L2 1766 715 -1.30447
例子2:
PCNP 370 139 -1.41244
RBM3 60 60 0
COTL1 338 252 -0.4236
PRKAG1 276 225 -0.294743
我想根据第 1 列(在两个文件中)获取公共行,并创建一个包含 7 列的新文件,其中第 1 列是原始文件中的第 1 列,第 2、3 和 4 列来自第一个文件和第 5、6 和 7 列来自第二个文件(第 2、3 和 4 列)。这是预期的输出:
预期输出:
RBM3 1517 993 -0.611355 60 60 0
PRKAG1 146 73 -1 276 225 -0.294743
我正在尝试使用以下代码在 AWK 中执行此操作:
awk -v OFS="\t" 'NR==FNR {n[$2]=$1;next} ($2 in n) {print $1, $2, $3, $4, n[$2], n[$3], n[$4]}' file1 file2 > results.txt
但结果不正确。你知道如何解决它吗?
【问题讨论】:
-
在提出新问题之前,您应该考虑接受现有问题的答案。见stackoverflow.com/help/someone-answers
标签: awk