| ||||
sort 텍스트로된 파일의 행단위 정렬을 할때 사용하는 명령어이다.
sort [OPTION]... [FILE]... 사용예 #1 textfile이라는 파일의 내용은 아래와 같다. [root@host3 command]# cat textfile 이 데이터를 간단히 정렬하기 위하여 다음과 같이 "sort 파일명"이라고 하였다. [root@host3 command]# sort textfile 위와 같이 "sort textfile"이라고 하면 textfile의 각 행의 첫번째 단어(필드)들의 첫번째 문자들을 알파벳 오름차순으로 정령을 한다. 첫번째 문자가 동일할 경우에는 동일한 첫번째 문자를 가진 행끼리 두번째 문자를 가지고 정렬하게 된다. 아무런 옵션없이 사용하면 위의 예와 같이 화면으로만 출력한다. 그렇다면 이 결과를 파일로 저장하려면 어떻게 할까?
이번에는 위의 출력되는 결과를 특정 파일에 저장하는 방법을 알아보자. 위와 동일한 정렬을 하여 textfile_sort라는 파일에 결과를 저장하여 cat으로 결과파일을 확인한 것이다. 사용예 #3 이번에는 textfile을 내림차순(역순)으로 정렬을 해보자. 이 결과 또한 파일에 저장을 하려면 "> 파일명"을 명령어의 끝에 추가하여 실행하면 된다. [root@host3 command]# sort -r textfile 위의 결과는 textfile의 각 행에 있는 첫번째 문자들을 내림차순(역순)으로 정렬을 한 것이다. 첫번째 문자가 동일할 경우에는 동일한 첫번째 문자를 가진 행끼리 두번째 문자를 가지고 정렬하게 된다. 이런식으로 비교를 하여 정렬하게 된다.
지금까지의 예는 모두 각 행의 첫번째 필드를 대상으로 정렬을 하였다. 각 행의 두번째 필드들만을 대상으로 정렬을 하고자한다면 아래와 같이 -k옵션을 사용하면 된다. 즉, 지금까지의 예들은 모두 각 행의 첫번째 필드인 (각행의 숫자들, 0,1,2,....,9) 숫자를 대상으로 정렬을 하였다. [root@host3 command]# sort -k 2 textfile 결과를 보면 각 행의 첫번째 필드는 무시되고 두번째 필드를 기준으로 오름차순 정렬이 된 것을 알 수 있다.
이번에는 각 행의 두번째 필드들을 기준하여 내림차순(역순)정렬을 한 예이다. [root@host3 command]# sort -r -k 2 textfile 위의 결과를 보면 첫번째 필드인 숫자들과는 무관하게 두번째 필드를 기준으로 내림차순 정렬이 된 것을 확인할 수 있다.
이번에는 3번째 필드를 대상으로 오름차순 정렬을 한 것이다. [root@host3 command]# sort -k 3 textfile 위의 결과를 보면 각행의 세번째 필드들을 기준으로 정렬이 되었음을 알 수 있다. 사용예 #7 이번에는 3번째 필드를 기준으로 내림차순(역순)정렬을 한 예이다. [root@host3 command]# sort -r -k 3 textfile
이번에는 textfile2라는 파일의 내용을 아래와 같이 가정하여 예를 들어 보겠다.
[root@host3 command]# cat textfile2 이것을 아래와같이 일반적으로 정렬을 하면 다음과 같이 오름차순으로 정렬이 될 것이다. [root@host3 command]# sort textfile2 위의 결과를 보면 동일한 내용이 중복되어 들어가 있는 것을 볼 수가 있다. 아래는 이런 중복된 행을 하나로 취급하여 유일하게 정렬을 한 것이다. [root@host3 command]# sort -u textfile2
이번에는 유일하게 정렬하면서 내림차순(역순)정렬을 함께 한 것이다. 유일정렬과 역순정렬을 함께한 결과가 위와 같다.
사용예 #10 [root@host3 command]# sort -k 2 textfile2 다음은 두번째 필드를 기준으로 정렬한 다음 유일정렬을 한 예이다. [root@host3 command]# sort -u -k 2 textfile2 이렇게 sort명령어는 다양한 방법으로 응용이 가능하며, 특히 위의 예와 같이 텍스트파일의 중복제거를 하면서 특정 필드를 기준으로 오름차순과 내림차순등으로 정렬하는 것은 리눅스에서 한번 할 수 있는 매우 강력한 방법이 될 수가 있다.
|
'UNIX&LINUX > LINUX' 카테고리의 다른 글
리눅스 mail 삭제 방법 (0) | 2014.05.16 |
---|---|
find 옵션 -exec 를 사용해보자 (0) | 2014.05.16 |
10일차 : Linux의 명령어(파일의 압축과 입출력) (0) | 2014.05.16 |
리눅스 주요 명령어 정리(Last Updated 2014.04.02) (0) | 2014.05.16 |
리눅스 명령어 결과 저장; 실행 화면 텍스트 파일로; Linux Unix Output to File (0) | 2014.05.16 |
[리눅스]perl 을 이용한 문자 치환 (0) | 2014.05.13 |
리눅스 생활코딩 (8) top , df, du (0) | 2014.05.13 |
5. find 사용 (0) | 2014.05.13 |