파일의 모든 숫자를 특정 정밀도로 반올림하려면 어떻게 해야 합니까? awk로 할 수 있나요?
한 줄은 다음과 같습니다.
text - 0.1655456615 - 0.158645 - 0.846554 - 0.85251 ##
편집: "-"는 열 구분 기호입니다.
답변1
다음을 사용하면 더 쉽습니다 perl
.
perl -pe 's/[-+]?\d*(?:\.?\d|\d\.)\d*(?:[eE][-+]?\d+)?/sprintf("%.2g",$&)/ge'
답변2
awk만 사용할 수 있는 경우:
awk '{
while (match($0, /[0-9]+\.[0-9]+/)) {
printf "%s%.2f", substr($0, 1, RSTART-1), substr($0, RSTART, RLENGTH)
$0 = substr($0, RSTART+RLENGTH)
}
print
}'