awk에서 과학적 표기법으로의 변환을 피하세요

awk에서 과학적 표기법으로의 변환을 피하세요

수백 개의 열이 포함된 CSV 파일이 있습니다. 정적 숫자에서 특정 열의 값을 뺀 다음 전체 행을 인쇄하고 싶습니다. 이 열의 값은 긴 부동 소수점 숫자입니다. 뺄셈을 수행하면 awk가 자동으로 결과를 과학적 형식으로 변환합니다. printf를 사용하여 표준 표현을 얻을 수 있지만 전체 행을 가져와야 하고 행당 필드가 너무 많습니다.

이 자동 변환을 피하거나 최소한 우회할 수 있는 방법이 있습니까?

답변1

에서 man awk:

대체를 통해 숫자 표현식을 문자열로 변환표현그리고sprintf(CONVFMT, 표현식), 하지 않는 한표현호스트에서 정확한 정수로 표현된 다음 다음으로 변환될 수 있습니다.sprintf("%d", 표현식).파편() 의 기능을 복제하는 AWK 내장 함수입니다.스프린트프(3), 그리고컨벌루션 FMT 숫자를 문자열로 내부 변환하는 데 사용되는 내장 변수이며 "%.6g". 명시적인 유형 변환을 강제할 수 있습니다. expr ""그렇습니다.그리고 expr+0숫자.

그래서 당신은 정리할 수 있습니다컨벌루션 FMT시작 또는 형식 필드의 변수입니다.

관련 정보