gpt4 book ai didi

linux - 读取不同的字段并传递给 awk 以提取这些字段

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:12 25 4
gpt4 key购买 nike

可能这在某个地方得到了回答,但我探索的东西不符合我的需要。

我想从一个文件 (FILE1) 中读取不同的字段并将其传递给 awk 脚本,该脚本可以从另一个文件 (FILE2) 中提取这些字段。

文件1

1   156202173   156702173
2 26915624 27415624
4 111714419 112214419

因此从该文件中读取行并将其传递给以下脚本

awk ' BEGIN {FS=OFS="\t"};
{if ($1==$1 && $2>= $2 && $2<= $3 ) {print $0}}' FILE2 > extracted.file

FILE2 看起来像这样;

1   156202182   rs7929618
16 8600861 rs7190157
4 111714800 rs12364336
12 3840048 rs4766166
7 20776538 rs35621824

因此 awk 脚本仅在与第一个字段匹配且值介于第二个和第三个字段之间时打印。预期输出是

1   156202182   rs7929618
4 111714800 rs12364336

非常感谢您的回复。

最佳答案

应该有很多类似的问题,但写脚本比查找更快。

$ awk 'NR==FNR{lower[$1]=$2; upper[$1]=$3; next} 
lower[$1]<$2 && $2<upper[$1]' file1 file2

1 156202182 rs7929618
4 111714800 rs12364336

关于linux - 读取不同的字段并传递给 awk 以提取这些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40679074/

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