如果第一个文件第一个字段落在一个范围内,则想从第一个文件中提取所有行 第二个文件第三个字段(开始范围)和第四个字段(结束范围)
尝试过以下命令并且不完整,请帮忙
awk -F"," 'NR==FNR{ start[$1] = $3; end[$1] = $4; next } ( ($1 >= start[$1]) && ($1 <= end[$1]) )' f22.txt f11.txt
f11.txt :
12,abc,ppp
15,def,ppp
20,xyz,ppp
6,hij,ppp
8,mno,ppp
f22.txt
Data1,Data2,Start,End
qqq,www,1,5
qqq,www,10,15
qqq,www,7,9
期望的输出:
12,abc,ppp
15,def,ppp
8,mno,ppp
答案 0 :(得分:0)
这一行应该完成这项工作:
awk -F, 'NR==FNR{s[NR]=$3;e[NR]=$4;n++;next}
{for(i=1;i<=n;i++)if($1>=s[i]&&$1<=e[i]){print;break}}' file2 file1
答案 1 :(得分:0)
awk
与grep
:
awk -F, '{for (i = $3; i <= $4; i++) {print "^"i","}}' input2 | grep -f - input1