Linux command - sort

sycho·2024년 1월 2일
0

Linux Commands

목록 보기
21/30

sort

  • documentation

  • 파일 내용물 정렬에 사용된다.

  • 기본적으로 파일 내용물이 ASCII로 되어 있다고 가정한다. option 활용시 숫자처럼 취급해서 정렬하는 것도 가능하며 그 외에 다양한 유틸들을 제공한다.

  • 밑은 사용할 예시 파일.

$ cat words.txt
Blossom
Voyager
Cascade
Whimsical
Labyrinth
Serendipity
Quasar
Tranquil
Kaleidoscope
Resonance

basics

  • 밑과 같은 꼴을 가진다.
sort [OPTION]... [FILE]...
  • 파일이 주어지지 않으면 입력값을 토대로 정렬을 한다.

  • 그냥 실행을 하면 알파벳순으로 정렬을 한다. 다만 정렬된게 출력만 되지 입력 파일에 자동으로 저장되지는 않는다.

sycho@DESKTOP-4RPUOID:~$ sort words.txt
Blossom
Cascade
Kaleidoscope
Labyrinth
Quasar
Resonance
Serendipity
Tranquil
Voyager
Whimsical

sycho@DESKTOP-4RPUOID:~$ cat words.txt
Blossom
Voyager
Cascade
Whimsical
Labyrinth
Serendipity
Quasar
Tranquil
Kaleidoscope
Resonance
  • 유의할게 ASCII로 생각해서 정렬을 하다보니 첫글자가 대문자인 경우랑 소문자인 경우가 섞여있으면, 대문자가 앞에 있는 언어들이 먼저 정렬되고, 이후 소문자가 앞에 있는 언어들이 정렬이 된다. ASCII값이 대문자가 소문자보다 무조건 작기 때문.

options

정렬한걸 다른 파일에 저장. (-o)

sycho@DESKTOP-4RPUOID:~$ sort -o sorted.txt words.txt

sycho@DESKTOP-4RPUOID:~$ cat sorted.txt
Blossom
Cascade
Kaleidoscope
Labyrinth
Quasar
Resonance
Serendipity
Tranquil
Voyager
Whimsical

내림차순 정렬 (-r)

sycho@DESKTOP-4RPUOID:~$ sort -r words.txt
Whimsical
Voyager
Tranquil
Serendipity
Resonance
Quasar
Labyrinth
Kaleidoscope
Cascade
Blossom

숫자로 취급해서 오름차순 정렬 (-n)

sycho@DESKTOP-4RPUOID:~$ cat nums.txt
223
909
867
102
798
600
275
696
987
410

sycho@DESKTOP-4RPUOID:~$ sort -n nums.txt
102
223
275
410
600
696
798
867
909
987
  • 앞의 -r과 혼합해서 숫자로 취급해 내림차순으로 정렬하는 것도 가능하다.
sycho@DESKTOP-4RPUOID:~$ sort -nr nums.txt
987
909
867
798
696
600
410
275
223
102

특정 열에 대해서 정렬 (-k)

  • -k 뒤에 숫자를 넣어서, 해당번째 열에 대해서 정렬을 하도록 시키는 것이 가능하다.

  • 열을 구별하는 기준이 되는 character은 기본적으로 , 즉 공백이다.

sycho@DESKTOP-4RPUOID:~$ cat data.txt
Greg Yoder 833
Sarah Mullins 117
Aimee Lewis 41
Kelli Cooper 475
Shelby Aguilar 208
Eddie Welch 313
Ashley Kelley 173
Isaiah Flores 835
Kathleen Jordan 85
Jessica Morgan 917

sycho@DESKTOP-4RPUOID:~$ sort -k 3 data.txt
Sarah Mullins 117
Ashley Kelley 173
Shelby Aguilar 208
Eddie Welch 313
Aimee Lewis 41
Kelli Cooper 475
Greg Yoder 833
Isaiah Flores 835
Kathleen Jordan 85
Jessica Morgan 917

파일이 정렬되었는지 안되어있는지 확인하기 (-c)

  • 정렬이 안되어 있으면 출력이 나오고, 정렬이 되어 있으면 아무 출력이 안나온다.
sycho@DESKTOP-4RPUOID:~$ sort -c words.txt
sort: words.txt:3: disorder: Cascade

sycho@DESKTOP-4RPUOID:~$ sort -c sorted.txt

sycho@DESKTOP-4RPUOID:~$ cat sorted.txt
Blossom
Cascade
Kaleidoscope
Labyrinth
Quasar
Resonance
Serendipity
Tranquil
Voyager
Whimsical

정렬 후 중복된 단어들 제거 (-u)

$ cat wordsup.txt
Apple
Banana
Apple
Cherry
Banana
Apple
Orange
Cherry
Grape
Grape
Lemon
Mango
Lemon
Pear
Banana
Kiwi
Grape
Apple
Orange
Kiwi

sycho@DESKTOP-4RPUOID:~$ sort -u wordsup.txt
Apple
Banana
Cherry
Grape
Kiwi
Lemon
Mango
Orange
Pear

월별로 정렬 (-M)

  • 모르는걸 제일 작다고 치고 이후 'JAN', 'FEB', MAR',... 순으로 정렬을 한다. 저 텍스트를 포함만 하고 있으면 된다.
sycho@DESKTOP-4RPUOID:~$ cat months.txt
NOV
MAR
JUN
JUL

sycho@DESKTOP-4RPUOID:~$ sort -M months.txt
MAR
JUN
JUL
NOV
profile
CS 학부생, 핵심 관심 분야 : Embed/System/Architecture/SWE

0개의 댓글