awk를 통한 출력 제한

awk를 통한 출력 제한

0보다 크 거나 보다 작은 정확한 열의 결과를 얻으려고 합니다 10,000,000.

내 파일은 다음과 같습니다.

799,799,0,0,,0,0,1,0,0,0,0,1,1,1,1,1,5155,5155,,0.000000
673,273,0,0,,0,0,1,0,0,0,0,1,1,1,1,1,5155,5155,,0.000000
941,741,0,0,,0,0,1,1,0,0,0,0,0,0,0,0,5157,5157,,9999998.140000

마지막 열에는 0.000000과 사이의 모든 값이 포함될 수 있습니다 10,000,000.

0보다 크고 작은 값 으로 출력을 제한해야 합니다 10,000,000.

다음 명령을 시도했습니다.

awk -F"," '$21<"10000000"' | awk -F"," '$21>"0.000000"'

그러나 $21의 출력은 항상 1000.000000입니다.

다음은 샘플 출력입니다.

647,790,1,0,,0,0,1,0,0,0,0,1,1,1,1,1,5155,5155,,1000.000000
600,796,1,0,,0,0,1,0,0,0,0,1,1,1,1,1,5300,5300,,1000.000000
950,797,1,0,,0,0,1,0,0,0,0,1,1,1,1,1,5300,5300,,1000.000000

답변1

$21<"10000000"awk숫자 비교 대신 문자열 비교를 사용하십시오 .

노력하다:

awk -F, '$NF>0 && $NF<10000000' <file

항상 을 사용하면 $NF마지막 필드가 제공되므로 다른 필드를 독립적으로 추가하거나 제거할 수 있습니다.

답변2

내 대답은 다음과 같습니다.

gawk -F"," "$21<10000000 && $21 > 0" a

이 출력을 사용하면 다음과 같습니다.

941,741,0,0,,0,0,1,1,0,0,0,0,0,0,0,0,5157,5157,,9999998.140000

귀하의 awk가 1000.000000 값을 생성하는 방법이나 숫자를 문자열과 비교할 수 있는 방법을 이해하지 못합니다(조건에서 천만과 0 값을 인용했습니다). 어떤 시스템을 사용하시나요?

관련 정보