
Linux의 cut 명령어는 텍스트 처리에 필수적인 유틸리티로, 파일의 각 줄이나 파이프로 연결된 입력에서 특정 세그먼트를 추출하도록 설계되었습니다.이 명령어는 원본 파일을 수정하는 대신, 데이터를 읽어 원하는 부분을 표준 출력에 표시합니다.이 가이드에서는 Linux에서 cut 명령어의 기능을 자세히 살펴보고, 실제 사용 사례를 통해 사용법을 설명합니다.
cut 명령 탐색
이 cut
명령어는 구조화된 텍스트를 다루는 모든 사용자에게 필수적인 도구로, Unix 계열 환경에서 효과적인 데이터 조작 및 추출을 용이하게 합니다.바이트 위치, 문자 위치, 구분 기호 또는 필드를 기준으로 행의 일부를 추출하는 cut은 셸 스크립트 및 명령줄 작업에서 데이터를 필터링하고 구성하는 데 매우 유용합니다. CSV 파일에서 특정 열을 검색하는 것부터 불필요한 문자를 제거하거나 로그를 분석하는 것까지 다양한 용도로 사용할 수 있습니다.파일에 직접 사용되는 경우가 많지만, 파이프라인에서 활용하면 다른 명령의 출력과도 원활하게 상호 작용합니다.
cut 명령의 기본 구문
cut 명령은 간단하며, 옵션 뒤에 파일 이름을 지정합니다.구문은 다음과 같습니다.
cut [OPTIONS] [FILE]
이 구조에서 OPTIONS는 cut 명령의 작동 방식을 지정하여 필드 구분 기호(예: 쉼표)를 선택하고, 특정 필드를 선택하고, 범위를 설정하고, 구분 기호가 없는 줄을 제외하는 등의 기능을 제공합니다.파일이 지정되지 않으면 cut 명령은 표준 입력에서 데이터를 읽습니다.또한, 여러 파일을 제공할 수 있으며, 이러한 파일들은 하나의 통합된 엔티티로 처리됩니다.
일반적으로 사용되는 옵션
잘라내기 명령은 추출할 텍스트의 정확한 부분을 지정할 수 있는 다양한 옵션을 제공합니다.가장 자주 사용되는 몇 가지 옵션은 다음과 같습니다.
- -f 또는 –fields=LIST : 지정된 구분 기호를 기준으로 특정 필드를 선택할 수 있습니다.
- -b 또는 –bytes=LIST : 각 줄에서 지정된 바이트를 추출합니다.
- -c 또는 –characters=LIST : 각 줄에서 특정 문자를 검색합니다.
- -d 또는 –delimiter : 기본 탭 대신 사용자 정의 구분 기호를 설정합니다.
- –complement : 지정된 필드, 바이트 또는 문자를 제외한 모든 것을 출력합니다.
- -s 또는 –only-delimited : 구분 기호가 없는 줄을 건너뜁니다.이러한 줄은 기본적으로 포함됩니다.
- –output-delimiter : 입력 구분 기호와 대조되는 다른 구분 기호를 출력에 사용할 수 있습니다.
, -f
, -b
및 -c
옵션은 LIST를 사용하여 추출할 항목을 정의합니다.다음을 지정할 수 있습니다.
- 2와 같은 단일 숫자.
- 1, 3, 5와 같이 쉼표로 구분된 여러 숫자.
- 2~4와 같은 범위(2에서 4까지의 값을 추출).
-
N-
N 위치에서 끝까지 추출함을 나타냅니다. -
-M
시작 지점부터 M 위치까지 추출을 의미합니다.
Linux에서 cut 명령 활용하기
cut 명령의 작동 방식을 알아보기 위해 몇 가지 실제 예제를 실행해 보겠습니다.먼저, echo 명령을 사용하여 “mte.csv”라는 샘플 파일을 만들어 보겠습니다.
echo -e "empID, empName, empDesig\n101, Anees, Author\n102, Asghar, Manager\n103, Damian, CEO" > mte.csv

다음으로, cat 명령을 사용하여 파일의 내용을 확인할 수 있습니다.
cat mte.csv

cut 명령은 파일 자체를 변경하지 않고 지정된 출력만 제공한다는 점을 언급하는 것이 중요합니다.
문자별 데이터 추출
위치별로 문자를 추출하려면 -c
cut 명령과 함께 옵션을 활용하세요.
cut -c 1, 8 mte.csv
이 명령은 각 행에서 첫 번째와 여덟 번째 문자를 추출합니다.

지정된 범위 내에서 문자를 추출하려면 다음 명령을 적용하세요.
cut -c 1-8 mte.csv
이는 각 행의 1~8번째 위치에서 문자를 추출합니다.

바이트별 추출
특정 바이트를 추출하려면 -b
cut 명령과 함께 옵션을 활용하세요.
cut -b 1-3 mte.csv
이 명령은 파일의 각 줄에서 처음 3바이트를 추출합니다 mte.csv
.

필드(열)별 추출
파일에서 전체 필드를 추출하려면 cut 명령을 및 -f
옵션 과 함께 사용합니다 -d
.
cut -d', ' -f2 mte.csv
이 명령에서 -d', '
쉼표를 구분 기호로 지정하고, while -f2
은 cut이 각 줄에서 두 번째 필드를 추출해야 함을 나타냅니다.

cut에서 사용자 정의 구분 기호 구현
cut 명령은 기본적으로 탭을 구분 기호로 사용하지만, 필드가 다른 문자로 구분된 경우 를 사용하여 -d
올바른 문자를 지정해야 합니다.예를 들어, 공백으로 구분된 문장에서 다섯 번째 단어를 추출하려면 다음을 사용할 수 있습니다.
echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5

추출 중 특정 필드 제외
cut 명령과 함께 옵션을 사용하면 파일에서 텍스트를 추출할 때 특정 필드를 생략할 수 있습니다 --complement
.이 옵션은 cut 명령이 지정된 필드를 제외한 모든 필드를 출력하도록 지정합니다.
cut -d', ' -f1 mte.csv --complement
이 명령은 첫 번째 열을 건너뛰고 나머지 내용을 반환합니다.

기본 출력 구분 기호 수정
기본적으로 필드를 추출할 때 cut 명령은 입력 구분 기호를 출력에 그대로 유지합니다.하지만 다음 --output-delimiter
옵션을 사용하여 출력 구분 기호를 변경할 수 있습니다.
cut -d', ' -f1-3 --output-delimiter='-' mte.csv
이 명령은 출력에서 하이픈을 구분 기호로 사용합니다.

다른 Linux 명령어와 cut 결합
cut 명령은 파이프라인 | 기호를 사용하여 다른 Linux 명령과 함께 사용할 수도 있습니다.예를 들어, 다음 명령은 who
명령의 각 출력 줄에서 처음 다섯 글자를 추출합니다.
who | cut -c 1-5

또 다른 예로, cut 명령을 head와 함께 사용하여 “mte.csv”의 처음 두 줄을 표시하고 empName 및 empDesig 필드만 추출할 수 있습니다.
head -n 2 mte.csv | cut -d ', ' -f2, 3

Linux cut 명령을 사용하여 불규칙한 데이터 형식 탐색
cut 명령은 쉼표나 탭과 같은 일관된 구분 기호를 사용하여 형식이 잘 지정된 데이터를 처리할 때 효과적입니다.하지만 간격이 일정하지 않거나 구분 기호가 혼합된 파일이 있는 경우, cut 명령만 사용하면 만족스럽지 못한 결과가 발생할 수 있습니다.이러한 상황을 해결하려면 tr
또는 와 같은 명령을 사용하여 데이터를 미리 정리하는 것이 좋습니다 sed
.이렇게 하면 cut 명령이 정확한 부분을 효과적으로 추출할 수 있습니다.
초과 공간 관리
각 필드가 공백으로 구분된 “mteData.txt”라는 파일을 생각해 보세요.
cat mteData.txt

cut은 단일 구분 기호를 예상하므로 tr
cut을 적용하기 전에 간격을 정규화하는 데 활용합니다.
cat mteData.txt | tr -s ' ' | cut -d ' ' -f1-2
이 명령은 “mteData.txt”를 처리하고, 여러 공백을.를 사용하여 하나로 바꾼 tr
다음, 처음 두 필드를 추출합니다.

혼합 구분 기호 관리
파일에 공백과 쉼표가 함께 사용되는 경우, .(쉼표)를 사용하여 형식을 정규화합니다 sed
.예를 들어, “mteData1.txt”라는 파일에는 다음이 포함됩니다.
cat mteData1.txt

cut을 사용 sed
하여 모든 공백을 쉼표로 변환한 다음 첫 번째와 세 번째 필드를 추출합니다.
sed 's/ /, /g' mteData1.txt | cut -d ', ' -f1, 3

결론
이 글에서는 파일이나 파이프 입력에서 데이터를 추출하는 데 필수적인 도구인 Linux cut 명령어의 기능을 살펴보았습니다.간단한 구문 덕분에 지정된 구분 기호를 기준으로 문자, 바이트 또는 필드를 손쉽게 가져올 수 있습니다.또한, cut 명령어를 tr
, sed
, 와 같은 다른 유틸리티와 결합하여 head
불필요한 데이터를 관리하고 더욱 효율적인 출력을 얻는 방법도 살펴보았습니다. CSV 파일을 처리하든, 로그를 분석하든, 데이터를 정리하든, cut 명령어는 Unix 계열 환경에서 텍스트 처리를 위한 필수적인 도구입니다.
자주 묻는 질문
1. Linux에서 cut 명령어의 주요 목적은 무엇입니까?
Linux의 cut 명령어는 주로 파일이나 다른 명령어의 출력에서 특정 텍스트 부분을 추출하는 데 사용됩니다.이를 통해 사용자는 구분 기호, 바이트 위치 또는 문자 위치를 기반으로 데이터를 효과적으로 조작하고 형식을 지정할 수 있습니다.
2.cut 명령을 다른 Linux 명령과 결합할 수 있나요?
네! cut 명령은 파이프라인 기호(|)를 사용하여 다른 Linux 명령과 완벽하게 통합될 수 있습니다.이를 통해 강력한 데이터 처리가 가능해져 다양한 명령의 출력을 필터링하고 형식을 지정할 수 있습니다.
3.잘라내기 명령을 사용할 때 사용자 정의 구분 기호를 지정하려면 어떻게 해야 하나요?
-d
원하는 구분 기호 문자 뒤에 옵션을 사용하여 사용자 지정 구분 기호를 지정할 수 있습니다.예를 들어, 쉼표를 구분 기호로 사용하려면.을 사용합니다 -d', '
.
답글 남기기 ▼