특정 열의 범위에있는 숫자를 포함하는 행을 반환하지만 열에 특정 숫자가 포함 된 경우에만

user10345633

이 질문과 관련하여 ... 특정 열의 범위에있는 숫자를 포함하는 행을 반환 합니다. 특정 열의 범위에있는 숫자를 포함하는 행을 반환합니다.

특정 범위의 숫자를 포함하는 줄을 삭제하는 방법을 알고 있습니다. 그렇다면 다른 열에 숫자가있을 때만 줄을 삭제하려면 어떻게해야합니까?

예를 들어 두 번째 열에 4가 있고 세 번째 열에 50에서 85 사이의 숫자가 포함 된 경우 줄을 삭제하고 싶습니다. 입력

a 3 44 563
d 4 55 11 
e 2 93 445
r 4 82 44
e 4 93 33

산출

a 3 44 563
e 2 93 445
e 4 93 33

나는 우리가 이런 식으로 할 수 있다고 생각합니다. 그러나 이것은 작동하지 않습니다.

awk '$2==4' & awk '$2 > 85 && $2 < 50' input > output

아무도 이것을 알 수 있습니까? 두 번째 열에는 1-22의 정수만 포함됩니다.

미리 감사드립니다!

노 젓는 배

이 awk 조건은 다음 행을 인쇄합니다.

awk '$2 != 4 || $3 > 85 || $3 < 50' input

두 번째 열이 4가 아니거나 세 번째 열이 85보다 크거나 세 번째 열이 50보다 작은 경우 행을 인쇄합니다.

이 논리적 동등 물은 동일한 효과를 가져야합니다.

awk '! ($2 == 4 && $3 <= 85 && $3 >= 50)' input

주석에서 언급했듯이 범위 비교를 작성하는 더 명확한 방법 min <= num <= maxmin <= num && num <= max. 따라서 다음과 같습니다.

awk '! ($2 == 4 && 50 <= $3 && $3 <= 85)' input
awk '$2 != 4 || $3 < 50 || 85 < $3' input

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관