데이터 파일을 내림차순으로 정렬하려고 합니다. 데이터 파일은 탭으로 구분된 세 개의 열로 제공됩니다. 세 번째 열은 내림차순으로 정렬하고 싶습니다(세 번째 열은 지수 값에 대한 과학적 표기법으로 제공됨).
cat eII_surf.txt | sort -gr -k3
어쨌든 이것은 이전 컴퓨터에서는 작동했지만 새 컴퓨터에서는 전혀 작동하지 않는 것 같습니다.
간단한 예는 다음과 같습니다.
cat test.txt
:
6.7 2.3e-12
5.0 3.4e-18
4.5 5.6e-16
4.2 2.1e-15
4.0 2.9e-17
2.4 2.5e-15
1.0 1.0e-17
0.5 1.0e-18
그리고 cat test.txt | sort -gr -k2
:
4.5 5.6e-16
5.0 3.4e-18
6.7 2.3e-12
4.2 2.1e-15
4.0 2.9e-17
2.4 2.5e-15
1.0 1.0e-17
0.5 1.0e-18
이것은 다음의 출력입니다 locale
.
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC=de_DE.utf8
LC_TIME=de_DE.utf8
LC_COLLATE="en_US.utf8"
LC_MONETARY=de_DE.utf8
LC_MESSAGES="en_US.utf8"
LC_PAPER=de_DE.utf8
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT=de_DE.utf8
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
답변1
2.3e-12
2
10진수 기수 문자가 존재하는 로캘에서 숫자를 써야 하는 것으로 이해됩니다 ,
(귀하를 포함하여 대부분의 비영어권 세계에서와 같이 ) .de_DE.utf8
2,3e-12
다음을 수행할 수 있습니다.
LC_ALL=C sort -grk2 < your-file
숫자가 영어 스타일로 해석되도록 합니다.
C 로케일(모든 시스템에서 찾을 수 있는 유일한 로케일)에서 소수점 밑수는 .
(편의를 위해)입니다.
sort
와는 아무런 관련이 없으며 bash
별도의 명령이라는 점에 유의하세요 . 이 -g
옵션은 GNU 구현의 비표준 확장입니다 sort
.