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.txt
high
if(NR==1) low=high
high
low
if
print $0