Bash에서 파일의 두 번째 열을 기준으로 데이터 정렬

Nilesh Katuwal 2023년10월8일
  1. Bash의 정렬 명령 개요
  2. Bash에서 파일의 두 번째 열을 기준으로 데이터 정렬
Bash에서 파일의 두 번째 열을 기준으로 데이터 정렬

이 문서는 bash에서 파일의 두 번째 열을 기반으로 데이터 정렬에 대해 교육합니다.

Bash의 정렬 명령 개요

파일은 특정 순서로 레코드를 배치하는 정렬 명령을 사용하여 정렬됩니다. 기본적으로 sort 명령은 파일에 ASCII 데이터가 포함되어 있다고 가정하여 파일을 정렬합니다.

숫자 정렬은 sort 명령을 통해 사용할 수 있는 또 다른 옵션입니다. 정렬 명령에는 다음 기능이 포함됩니다.

  1. 숫자로 시작하는 줄은 문자로 시작하는 줄보다 먼저 표시됩니다.
  2. 알파벳순으로 나중에 오는 문자로 시작하는 행은 앞선 문자로 시작하는 행 뒤에 옵니다.
  3. 대문자로 시작하는 줄은 같은 소문자로 시작하는 줄보다 먼저 표시됩니다.

filename.csv라는 이름의 데이터 파일을 생성한다고 가정합니다. 그리고 cat 명령을 사용하여 bash에서 해당 파일을 엽니다.

Bash에서 파일을 여는 구문:

$ cat filename.csv

대소문자 혼합, 대문자 및 소문자 파일 정렬:

대문자와 소문자가 혼합된 파일에서는 대문자가 먼저 정렬된 다음 소문자가 정렬됩니다.

다음을 포함하여 다양한 정렬 옵션이 있습니다.

  • -k - 이 옵션은 지정된 열을 기준으로 데이터를 정렬하는 데 도움이 됩니다. 예를 들어 -k5 인수는 각 줄의 다섯 번째 문자가 아니라 각 줄의 다섯 번째 필드부터 정렬합니다(여기서 열은 쉼표로 구분된 필드로 정의됨).

  • -n - 이 옵션은 열을 텍스트가 아닌 숫자 행으로 읽어야 함을 의미하는 숫자 정렬을 지정합니다.

  • -r - -r 옵션을 사용하면 정렬 순서가 반대로 됩니다. 그것을 쓰는 또 다른 방법은 -reverse입니다.

  • -i - 이 옵션은 인쇄할 수 없는 문자를 무시합니다. 그것을 쓰는 또 다른 방법은 -ignore-nonprinting입니다.

  • -b - 이 옵션은 선행 공백을 고려하지 않습니다. 이는 행 수가 공백을 사용하여 계산되기 때문에 유용합니다. 그것을 작성하는 또 다른 방법은 ignore-leading-blanks입니다.

  • -f - 이 옵션은 대문자 A==a를 무시합니다. 그것을 쓰는 또 다른 방법은 ignore-case입니다. 이 옵션을 사용하면 전처리에서 공백 이외의 연산자인 -t [새 구분 기호]를 사용할 수 있습니다.

    그것을 쓰는 또 다른 방법은 -field-separator입니다.

Bash에서 파일의 두 번째 열을 기준으로 데이터 정렬

-k 옵션을 사용하면 정렬을 통해 파일을 열별로 정렬할 수 있습니다. 여러 열이 있는 파일을 만들어 보겠습니다. 정렬 시 단일 공백을 사용하여 각 열을 나눕니다.

예를 들어 -k 2를 사용하여 두 번째 열에서 정렬합니다. filename.csv라는 파일을 이미 만들었습니다. 해당 파일에서 사용할 수 있는 데이터는 다음과 같습니다.

Bonie,22
Julie,23
Henry,15
Flamingo,34
Peter,11

cat 명령을 사용하여 정렬하기 전에 파일의 항목을 봅니다.

$ cat filename.csv

출력:

Bonie,22
Julie,23
Henry,15
Flamingo,34
Peter,11

Bash에서 파일의 두 번째 열을 기준으로 데이터를 정렬하는 구문:

sort -k2 -n filename.csv

두 번째 열을 정렬한 후 출력:

Bonie,22
Flamingo,34
Henry,15
Julie,23
Peter,11