작업: 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"