我想加入两个文件,我必须使用命令join。这是第一个文件 file1.txt
SUBJID SEX DTHHRDY
GTEX-1117F 2 4
GTEX-111CU 1 0
GTEX-111FC 1 1
GTEX-1122O 2 4
这是第二个文件file2.txt
GTEX-1117F-003-a
GTEX-1117F-003-b
GTEX-111CU-0011-a
GTEX-111FC-0011
GTEX-1122O-0045-a
GTEX-1122O-0045-b
如您所见,文件 1 与第 1 列中的文件 2 匹配。此外,我必须加入这两个字段来过滤文件 1 中的第 2 列和第 3 列。对于第 2 列,我必须采用所有值 2,对于第 3 列,所有值都是4.
需要输出
Sample SEX DTHHRDY
GTEX-1117F-003-a 2 4
GTEX-1117F-003-b 2 4
GTEX-1122O-0045-a 2 4
GTEX-1122O-0045-b 2 4
GTEX-1117F 与 GTEX-1117F-003-a 相关,因为前两行是相同的,区别是 -003-a 但你可以把它剪下来,你会看到它们是相关的。我试过了join -1 1 -1 1 file1.txt file2.txt
,但我收到这条消息“加入:不兼容的加入字段 1、2”。此外,我用这个创建了两个新文件awk '{if ($2 == "2") print $1,2,3}'
,所以我有 12 个数据,但现在我不知道如何加入 file2.txt。另外,我必须使用join
命令
head -n 1 file1.txt
join <(paste -d" " <(cut -d- -f1-2 file2.txt) file2.txt | sort) \
<(tail -n +2 file1.txt | sort) \
| cut -d" " -f2- \
| awk '$2 == 2 && $3 == 4' \
| column -t
SUBJID SEX DTHHRDY
GTEX-1117F-003-a 2 4
GTEX-1117F-003-b 2 4
GTEX-1122O-0045-a 2 4
GTEX-1122O-0045-b 2 4
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句