【发布时间】:2014-06-28 02:02:07
【问题描述】:
感谢您对以下方面的意见:
我想按其中的 ID(第一列)匹配两个文件,并按列过滤第三个文件,仅匹配那些匹配的 ID。
我有三个文件(见下文)。我想将file1$1 与file2 中的ID 匹配。在两个文件之间相等的那些 ID 中,我想按列过滤 file3。 File3 列的排序类似于row1 的file1。唯一的区别是 ID 名称不表示为 file3 的列名称。我只知道它具有相同的顺序。
file1:
ID X Y
ID1 X1 Y1
ID2 X2 Y2
ID3 X3 Y3
file2:
ID1
ID3
file3(列的顺序与file1 的行的顺序相似 - 仅没有实际 ID)
Z 1 2 3
W 1 2 3
V 1 2 3
输出:
Z 1 3
W 1 3
V 1 3
我该怎么办?
【问题讨论】:
-
看起来您只是从文件 3 中删除了第三列。目前尚不清楚 ID 所起的作用。您最大的障碍可能是无法用通俗易懂的语言准确地说明问题;通常,当您能够做到这一点时,代码就会弹出 --- 如果您知道如何编码,那就是。
-
你可以使用sed命令功能...
-
@ManoloSalsas Sed 用于对组织成行和列的数据进行转换是完全愚蠢的;在同一环境中可用的理想工具是 Awk。
-
您最好将文件 2 和 3 合并为 1 个文件,即
paste file2 file3 > newFile2。然后阅读join命令。祝你好运。
标签: regex linux unix string-matching