특정 열의 숫자 범위를 포함하는 행 반환

특정 열의 숫자 범위를 포함하는 행 반환

작업: x부터 y까지 z열의 숫자가 포함된 행을 반환합니다.

예를 들어 열 2에서 140-160 범위의 숫자가 있는 행을 선택합니다.

1 1    some data 150
2 150  some data 1
3 151  some data 151
4 1000 some data 150

다음을 반환해야 합니다:

2 150 some data 1
3 151 some data 151 

grep, awk 또는 sed를 사용할 수 있습니다. 유닉스의 새로운 기능. 감사합니다!

답변1

awk당신은 이것을 할 수 있습니다

awk '$2 > 140 && $2 < 160' input_file

$2두 번째 필드( )를 원하는 범위와 비교 하고 두 조건이 모두 충족되는 경우에만 행을 인쇄합니다.

-v최소값과 최대값이 변수에 저장되어 있는 경우 다음과 같이 전달할 수 있습니다 awk.

min=140
max=160
awk -v lower="$min" -v upper="$max" '$2 > lower && $2 < upper' input_file

답변2

grep -E -e "^[0-9]+ 1[45][0-9]" -e "^[0-9]+ 160"

관련 정보