다른 파일의 범위를 기준으로 줄 추출

다른 파일의 범위를 기준으로 줄 추출

price.txt파일에는 (이름과 값)이라는 두 개의 열이 있습니다.

Mary 134
Lucy 56
Jack 88
Marissa 37
Emily 85
Antony 99

range.txt파일에는 (과일과 값)이라는 두 개의 열도 있습니다.

apple 57
banana 62
orange 88
blueberry 98

range.txt의 두 번째 열은정렬됨(가장 작은 것부터 가장 큰 것까지)

price.txt내 목표는 파일의 값 범위(57~98) 내에 값이 있는 행을 추출하는 것입니다 range.txt.

예상되는 결과는 다음과 같습니다.

Jack 88
Emily 85

이 문제를 해결하기 위해 다음 코드를 사용하려고 시도했지만 특정 열의 첫 번째 행과 마지막 행을 선택하는 방법을 모르겠습니다. 코드에서 명확하지 않은 부분은 **...**별표( ) 사이에 있습니다.

awk 'FNR == NR {value=$2; **low=??; high=??**; next} 
     {if ($2>=**low** && $2<=**high** ) print $0}' range.txt price.txt

답변1

awk 'FNR == NR {high=$2; if(NR==1) low=high; next} 
     {if ($2>=low && $2<=high ) print $0}' range.txt price.txt

이면 FNR == NR파일을 읽고 여기에서 range.txt파일의 두 번째 열을 할당하고 첫 번째 값을 using에 할당하면 다음 문장에서 해당 값을 사용할 수 있습니다. 그리고 조건에 맞는 라인이 출력됩니다.range.txthighif(NR==1) low=highhighlowifprint $0

관련 정보