gpt4 book ai didi

linux - 基于另一个查询文件从一个文件中提取行 - linux

转载 作者:太空宇宙 更新时间:2023-11-04 11:01:55 26 4
gpt4 key购买 nike

我正在尝试根据文件 B(匹配)从一个文件 A 中提取行。

文件A

chr gene start stop pval
1 xic 455 467 0.005
2 ABD 5667 5789 0.03
5 GHE 4556 4784 0.23
6 sdg 4568 4677 0.558

文件B

ABD
GHE

所以输出是

chr gene start stop pval
2 ABD 5667 5789 0.03
5 GHE 4556 4784 0.34

我试试这段代码:

grep -f B A >> A_B.txt

问题:在示例文件中,一切运行良好,但是当我在我的数据集中尝试时,它给出了实际列表(ABD,GHE)以及其他一些列表(sdg)...

喜欢

 chr gene start stop pval
2 ABD 5667 5789 0.03
5 GHE 4556 4784 0.34
6 sdg 4568 4677 0.558

建议:我该如何解决...是否可以集成一些代码,以便我只获得选定的列

期望的输出:

        chr gene pval
2 ABD 0.03
5 GHE 0.34
6 sdg 0.558

非常感谢中号

最佳答案

使用 awk

 awk 'FNR==NR{a[$2]=$0; if(NR==1) print $0} ($1 in a) {print a[$1]}' FileA FileB > output.txt

如果要选择列

awk 'FNR==NR{a[$1]=$0}($2 in a) {print $1,$2,$5}' FileB FileA > output.txt

关于linux - 基于另一个查询文件从一个文件中提取行 - linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com