본문 바로가기
Computer Science/[19-상] Linux Bash Script

[Linux_bash] cut,sort: 필드(field)를 지정하는 옵션의 차이

by gojw 2020. 2. 2.

엑셀 파일 (csv)을 리눅스로 불러오면 아래와 같이 쉼표로 구분된다.

쉼표로 구분된 각각의 열을 필드(field)라고 부른다.

sort 와 cut 모두 필드를 정할 수 있는 옵션이 있다.

하지만 같은 의미인데 알파벳이 달라서 헷갈리는 경우가 많다.

 

-----------------

Name,Country,Age

James,United States,30

Aleta,Spain,15

Jisu,South Korea,23

wang,China,27

----------------

 

이런 텍스트 파일에서

첫번째 field는 Name,

두번째 field는 Country,

세번째 field는 Age이다.

 

필드 구분자는 쉼표 (,)이다.

 

#cut 명령어로 특정 필드를 자르는 법

 

Country를 따로 잘라내고 싶으면

cut - d "," -f 2 test.txt

 

-d: 필드 구분자를 지정한다.

cut의 필드 구분 디폴트 문자는 탭이다.

-f: 자를 필드 번호를 지정한다.

 

# sort 명령어로 특정 필드 기준으로 정렬하는 법

 

Age가 작은 순서대로 정렬하고 싶으면

sort -t "," -k 3 test.txt

 

-t: 필드 구분자를 지정한다.

-k: 자를 필드 번호를 지정한다.

 

 

------------------

# 파일의 구분자가 : 일때

 

Name:Country:Age

James:United States:30

Aleta:Spain:15

Jisu:South Korea:23

wang:China:27

 

cut - d ":" -f 2 test.txt

sort -t ":" -k 3 test.txt

이렇게 구분자를 :로 바꿔주면 된다.

댓글