행을 삭제하고 싶습니다.0이 아닌 모든 요소1보다 작다
내 파일은
a 2 0 0 0 9
b 3 0 0 0.7 13
c 0.3 0.5 0 0 0
d 0.4 7.96681779026634e-05 0 0
예상되는 출력은
a 2 0 0 0 9
b 3 0 0 0.7 13
나는 초보자입니다. awk '{for(i=2;i<=NF;i++){if($i+0=0 print $0; else < 1) next}} 1'
다음과 같이 이전 코드를 편집하여 시도했습니다 .이 링크, 그런데 제가 뭔가 잘못하고 있어요.
답변1
노력하다:
$ awk '{f=0; for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1} f' file
a 2 0 0 0 9
b 3 0 0 0.7 13
코드는 변수를 사용합니다 f
. true(0이 아님)로 끝나면 f
행을 인쇄합니다.
f=0
각 행에 대해
f
false로 설정하여 시작합니다(인쇄하지 않음).for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1
요소가 0이 아니고 1보다 큰 경우 (true)
f
로 설정됩니다.1
f
f
true(0이 아님) 이면 이 행을 인쇄합니다.