可能这在某个地方得到了解答,但我所探讨的事情并不符合我的需要。
我想从一个文件(FILE1)中读取不同的字段并将其传递给awk脚本,该脚本可以从另一个文件(FILE2)中提取这些字段。
FILE1
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脚本仅在与第一个字段匹配且值在第2个和第3个字段之间时打印。 预期输出
1 156202182 rs7929618
4 111714800 rs12364336
非常感谢您的回复。
答案 0 :(得分:1)
应该有很多类似的问题,但编写脚本比查找更快。
$ awk 'NR==FNR{lower[$1]=$2; upper[$1]=$3; next}
lower[$1]<$2 && $2<upper[$1]' file1 file2
1 156202182 rs7929618
4 111714800 rs12364336