반응형
Bash에서 숫자로 문자열 정렬
이 질문에 이미 답변이 있습니다.
나는 종종 숫자가있는 문자열을 정렬하여 정렬 할 때 abc_2, abc_1, abc_10
결과가 abc_1, abc_2, abc_10
. 내가 본 모든 정렬 메커니즘 abc_1, abc_10, abc_2
은 왼쪽에서 문자별로 정렬됩니다 .
원하는 결과를 얻기 위해 정렬하는 효율적인 방법이 있습니까? 모든 문자를보고, 숫자인지 확인하고, 후속 숫자에서 하위 문자열을 만들고,이를 숫자로 정렬하는 아이디어는에서 생각하기에는 너무 끔찍합니다 bash
.
수염 난 * nix 전문가 sort
가 --sensible_numerical
옵션이 있는 대체 버전을 구현하지 않았 습니까?
이것을 실행
sort -t _ -k 2 -g data.file
- -t 구분자
- -k 키 / 열
- -g 일반 숫자 정렬
나는 이것이에 대한 GNU 확장이라고 생각 sort
하지만 --version-sort
(또는 -V
) 옵션을 찾고 있습니다.
$ printf "prefix%d\n" $(seq 10 -3 1)
prefix10
prefix7
prefix4
prefix1
$ printf "prefix%d\n" $(seq 10 -3 1) | sort
prefix1
prefix10
prefix4
prefix7
$ printf "prefix%d\n" $(seq 10 -3 1) | sort --version-sort
prefix1
prefix4
prefix7
prefix10
https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html
이 시도
$ cat a.txt
abc_1
abc_4
abc_2
abc_10
abc_5
$ sort -V a.txt
abc_1
abc_2
abc_4
abc_5
abc_10
참조 URL : https://stackoverflow.com/questions/17061948/sorting-strings-with-numbers-in-bash
반응형
'developer tip' 카테고리의 다른 글
서버의 현재로드에 영향을주지 않도록 MySQL 덤프 속도를 줄이려면 어떻게해야합니까? (0) | 2021.01.05 |
---|---|
Django는 애플리케이션의 모델 목록을 가져옵니다. (0) | 2021.01.05 |
범례 Python Matplotlib의 특정 항목 만 표시 (0) | 2021.01.05 |
외부를 클릭하여 jquery 드롭 다운 메뉴 닫기 (0) | 2021.01.05 |
문자열에서 ASCII가 아닌 문자 제거 (0) | 2021.01.05 |