파일의 두 번째 열을 기준으로 데이터 정렬
2열로 된 파일을 가지고 있고n
행의 수
column1에는 다음이 포함됩니다.names
및 열 2age
.
이 파일의 내용을 오름차순으로 정렬합니다.age
(두 번째 열에 있습니다).
결과는 다음과 같습니다.name
와 함께 가장 젊은 사람의name
그리고 둘째 막내...
1개의 라이너 셸 또는 bash 스크립트에 대한 권장 사항.
를 사용할 수 있습니다.key
명령어 옵션(필드 번호)을 지정하므로 두 번째 열을 원하는 경우 다음을 수행합니다.
sort -k2 -n yourfile
-n
,--numeric-sort
문자열 수치로 비교하다
예를 들어 다음과 같습니다.
$ cat ages.txt
Bob 12
Jane 48
Mark 3
Tashi 54
$ sort -k2 -n ages.txt
Mark 3
Bob 12
Jane 48
Tashi 54
솔루션:
sort -k 2 -n filename
보다 장황하게 다음과 같이 쓴다.
sort --key 2 --numeric-sort filename
예:
$ cat filename
A 12
B 48
C 3
$ sort --key 2 --numeric-sort filename
C 3
A 12
B 48
설명:
-k # - 이 인수는 정렬에 사용할 첫 번째 열을 지정합니다(여기서 열은 공백으로 구분된 필드로 정의됩니다.인수).
-k5
각 행의 5번째 문자가 아닌 5번째 필드부터 정렬됩니다.)-n - 이 옵션은 열이 텍스트가 아닌 숫자 행으로 해석되어야 함을 의미하는 "정렬 정렬"을 지정합니다.
상세:
기타 일반적인 옵션은 다음과 같습니다.
- -r - 이 옵션은 정렬 순서를 반대로 합니다.--reverse 라고도 쓸 수 있습니다.
- -i - 이 옵션은 인쇄할 수 없는 문자를 무시합니다.--ignore-nonprinting 이라고도 쓸 수 있습니다.
- -b - 이 옵션은 선행 공백은 무시하므로 행 수를 결정하는 데 공백이 사용되므로 유용합니다.ignore-leading-blanks 라고도 쓸 수 있습니다.
- -f - 이 옵션은 대소문자를 무시합니다."A"=="a"--ignore-case 라고도 쓸 수 있습니다.
- -t [new separator] - 이 옵션을 사용하면 전처리에 공백이 아닌 연산자를 사용할 수 있습니다.--field-separator 라고도 쓸 수 있습니다.
다른 방법도 있지만, 제가 자주 사용하는 가장 흔하고 도움이 되는 방법입니다.
탭 구분 값의 경우 아래 코드를 사용할 수 있습니다.
sort -t$'\t' -k2 -n
-r은 내림차순으로 데이터를 가져오는 데 사용할 수 있습니다.
-n(숫자 정렬의 경우)
-k, --key=POS1[,POS2] 여기서 k는 파일의 열입니다.
아래 내림차순은 코드입니다.
sort -t$'\t' -k2 -rn
사용하다sort
.
sort ... -k 2,2 ...
간단하게
$ sort -k2,2n <<<"$data"
언급URL : https://stackoverflow.com/questions/6438896/sorting-data-based-on-second-column-of-a-file
'programing' 카테고리의 다른 글
Tomcat을 사용하여 Eclipse에서 웹 서비스를 실행하는 동일한 경로 오류가 있는 여러 컨텍스트 (0) | 2023.04.29 |
---|---|
코코아 응용 프로그램의 인포리스트에서 "번들 표시 이름"과 "번들 이름"의 차이점은 무엇입니까? (0) | 2023.04.29 |
ASP.Net MVC를 다른 뷰로 리다이렉트 (0) | 2023.04.24 |
Bash mkdir 및 하위 폴더 (0) | 2023.04.24 |
FormBuilder 제공자 없음 (0) | 2023.04.24 |