공백으로 구분된 파일이 있습니다. 파일에는 지수 형식의 숫자와 텍스트가 포함되어 있습니다. 지수를 실제 십진수 값으로 변환하고 싶습니다. 누구든지 이것을 달성하는 방법을 제안할 수 있습니까?
답변1
GNU 사용 awk
:
gawk -v RS='[-+]?[0-9.]+[eE][-+]?[0-9]+' \
-v ORS= \
-v CONVFMT=%.1000g '{print $0 (RT == "" ? "" : +RT)}'
gawk
레코드 구분 기호 일치 항목을 RT
변수에 저장하면 지수 없이 부동 소수점 숫자로 변환됩니다 CONVFMT
.
더 높은 정밀도를 위해, 예 를 들어 1e123
로 변환 하려면 gawk 4.1 이상을 사용하여 (1000은1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
999999999999999977709969731404129670057984297594921577392083322662491290889839886077866558841507631684757522070951350501376
-M -v PREC=1000
조금)
답변2
이 시도
echo "3.85196e+06" | perl -ne 'printf "%d\n", $_;'