제거된 라인에는 결정된 임계값보다 높은 값이 포함되어 있습니다.

제거된 라인에는 결정된 임계값보다 높은 값이 포함되어 있습니다.

다음과 같은 데이터 파일이 있습니다.

데이터:

arht    -0.1006 0.0001  0.0147  100     arht    0.0012  -0.0002 0.0182  100
arht    -0.0006 1.0006  0.0133  100     arht    0.1011  0.0003  0.0175  100
bcmn     0.0005 0.0011  0.0165  100     bcmn    0.0015  0.0007  0.0197  100
ffgf    -0.0009 0.0012  0.0121  100     ffgf    0.0007  0.0010  0.0150  100
ffgf    -0.0004 0.0009  0.0105  100     ffgf    0.1008  0.0006  0.0151  100

다음 명령을 사용하여 2-3-4 및 7-8-9 열의 절대값 0.10보다 높은 값을 포함하는 행을 추출합니다.

awk 'sqrt($2*$2)<=.1 || sqrt($3*$3)>=.1 || sqrt($4*$4)>=.1 || sqrt($7*$7)>=.1 || sqrt($8*$8)>=.1 || sqrt($9*$9)>=.1 {print}' data > output

데이터 파일에서 이 줄을 제거해야 합니다. 위의 코드를 어떻게 수정할 수 있나요?

답변1

중복된 질문인 것 같습니다텍스트 파일에서 임계값보다 큰 값을 추출하시겠습니까? 그렇다면 코드의 첫 번째 용어를 수정해야 합니다.

awk 'sqrt($2*$2)>=.1 || sqrt($3*$3)>=.1 || sqrt($4*$4)>=.1 || sqrt($7*$7)>=.1 || sqrt($8*$8)>=.1 || sqrt($9*$9)>=.1) {print}' data >output

그런 다음 원하는 것을 얻으려면 앞에 부정 기호(!)를 추가하기만 하면 됩니다.

awk '!(sqrt($2*$2)>=.1 || sqrt($3*$3)>=.1 || sqrt($4*$4)>=.1 || sqrt($7*$7)>=.1 || sqrt($8*$8)>=.1 || sqrt($9*$9)>=.1) {print}' data > output

관련 정보