테이블 형식 변경 - 자릿수

테이블 형식 변경 - 자릿수

다음과 같이 숫자가 너무 많은 테이블이 있습니다.

MONTH A1 A2 A3  ......
1 1.54564468 2.48949 6.4984984 .....

Unix를 사용하여 테이블을 다음과 같이 다시 형식화하는 방법이 있습니까?

MONTH A1 A2 A3 ...
1 1.54 2.49 6.50 ...

답변1

"유닉스 사용"이 무슨 뜻인지 잘 모르겠지만 (s)printf기본적인 C 스타일 기능을 제공하는 거의 모든 도구는 가장 간단한 도구와 같이 이 작업을 수행할 수 있어야 합니다.

$ perl -pe 's/\d+\.\d+/sprintf "%.2f", $&/ge'
MONTH A1 A2 A3  ......
1 1.54564468 2.48949 6.4984984 .....
MONTH A1 A2 A3  ......
1 1.55 2.49 6.50 .....

필요한 정확한 명령은 테이블 데이터의 세부 사항에 따라 달라집니다. 예를 들어 보다 일반적인 부동 소수점 숫자(예: 지수를 포함할 수 있음)를 처리해야 하는지 여부입니다.

답변2

테이블이 실제로 탭으로 구분된 값의 파일이라고 가정합니다.

awk -v OFS='\t' 'NR-1 { for(i=1; i<=NF; i++) $i = sprintf("%.2f", $i) } 1' <file.csv

편집하다:Perl도 마찬가지입니다.

perl -lape '$.-1 and $_ = join "\t", map { sprintf "%.2f", $_ } @F' file.csv

답변3

시작은 다음과 같습니다.

for line in "1 1.54564468 2.48949 6 .4984984"; do printf "%.2f " $line; done

1.00 1.55 2.49 6.00 0.50

관련 정보