부동 소수점 숫자 및 awk 정렬

부동 소수점 숫자 및 awk 정렬

11개의 열이 있는 다음 foo.dat파일을 고려해 보세요.

  893    1  754  946  193   96   96     293.164     293.164     109.115     70.8852
  894    1  755  946  192   95   96     291.892     292.219     108.994      70.821
  895    1  755  947  193   95   97     290.947     291.606     109.058     70.5709
  896    1  755  947  193   95   97     290.002     290.663     109.122     70.5053
  897    1  755  948  194   95   98     289.057     290.057     109.187     70.2532
  898    1  754  949  196   96   99     288.444     289.456      109.44          70
  899    1  754  950  197   96  100     287.501     288.862     109.506     69.7458
  900    1  754  949  196   96   99     286.559     287.578     109.573     69.8637

11열과 9열을 필터링하여 이 열만 파일에 인쇄하고 싶지만첫 번째 새 열의 오름차순즉, 11열과 9열을 인쇄한 후 숫자 규칙에 따라 출력을 정렬합니다.

나는 노력했다

awk  -F' ' '{printf "%-12s%-12s\n", $11, $9}' foo.dat | sort -g 

하지만 출력이 주변에서 이상합니다 70. 그것은

70.2532 290.057
70 289.456
70.5053 290.663

70이전에는 없습니까 70.2532? .무시당하고 있는 것 같습니다 .

답변1

쉼표를 소수 구분 기호로 사용하는 로캘이 있는 것 같습니다. 이렇게 하면 해당 문제가 해결됩니다.

awk  -F' ' '{printf "%-12s%-12s\n", $11, $9}' foo.dat | LC_ALL=C sort -g

관련 정보