참조 파일의 입력 파일에서 값을 검색하고 참조 파일에서 해당 값을 얻으려면 awk를 사용할 생각입니다.
참조 파일과 입력 파일 모두 $3 및 $2를 기준으로 정렬할 수 있습니다(정렬하면 더 쉬울 것 같습니다). 참조 문서:
ID3 A 16553824 16561652 -1
ID4 A 22629640 22630440 -1
ID1 A 26607738 26607962 -1
ID2 A 28571020 28571736 -1
입력 파일:
A 16553900 16554000 -1
A 26607800 26607900 -1
A 28571050 28571100 -1
입력 $2를 참조 $3 및 $4와 비교하고 싶습니다. 참조 $3 < 입력 $2 < 참조 $3인 경우 해당 행은 입력 $5의 참조 $1에 할당됩니다. 그래서 그것은 다음과 같습니다:
원하는 출력:
A 16553900 16554000 -1 ID1
A 26607800 26607900 -1 ID3
A 28571050 28571100 -1 ID4
답변1
원하는 출력이 잘못된 것 같습니다.
awk '
NR == FNR {min[$1]=$3; max[$1]=$4; next}
{
for (id in min)
if (min[id] < $2 && $2 < max[id]) {
print $0, id
break
}
}
' reference input
A 16553900 16554000 -1 ID3
A 26607800 26607900 -1 ID1
A 28571050 28571100 -1 ID2