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 값을 인용했습니다). 어떤 시스템을 사용하시나요?