English

csplit — 패턴 기준 분할

Linux / 리눅스 기본 명령어 / csplit.html

리눅스 기본 명령어원문등록 2026-10-20T09:00:00+09:00

정규식이나 줄 번호를 기준으로 파일을 여러 구간으로 나누는 명령어.

기본 정보

명령어 이름csplit
한 줄 소개정규식이나 줄 번호를 기준으로 파일을 여러 구간으로 나누는 명령어.
제공GNU coreutils
공식 문서https://man7.org/linux/man-pages/man1/csplit.1.html
지원 운영체제Linux, macOS, BSD
설치 여부기본 탑재
분류리눅스 기본 명령어 (태그: 리눅스 기본 명령어 (태그: csplit, 분할, 정규식, 구간))

이 명령어는 무엇인가?

csplit은 파일을 고정 크기로 자르는 split과 달리, 정규식이나 줄 번호가 나타나는 지점에서 나눕니다. 로그에서 세션 시작 지점마다 파일을 분리할 때 유용합니다.

패턴은 /정규식/ 형태로 지정하고, {n}으로 반복 횟수를, {*}로 끝까지 반복을 의미합니다. 패턴이 일치하지 않으면 해당 구간이 생성되지 않으므로 실제 데이터로 먼저 확인하는 것이 좋습니다.

어떤 문제를 해결하는가?

  • 로그를 세션 시작 표시마다 분리할 때
  • 한 파일에 여러 문서가 이어져 있을 때
  • 줄 번호 기준으로 구간을 나눌 때
  • split으로는 경계를 맞출 수 없을 때

주요 기능

패턴 분할

/정규식/이 나오는 줄부터 새 파일을 시작합니다.

  • 활용 상황: 반복되는 구분자를 기준으로 나눌 때
  • 얻는 결과: 내용 경계를 정확히 지킬 수 있습니다.
  • 제한 사항: 패턴이 없으면 파일이 만들어지지 않습니다.

반복 지정

{n}과 {*}로 분할 횟수를 제어합니다.

  • 활용 상황: 구간 수를 미리 알 때
  • 얻는 결과: 불필요한 분할을 막을 수 있습니다.
  • 제한 사항: 횟수를 잘못 지정하면 마지막 구간이 뭉칩니다.

출력 이름

접두사와 형식을 지정해 파일명을 만듭니다.

  • 활용 상황: 후속 처리에서 이름 규칙이 필요할 때
  • 얻는 결과: 스크립트 연동이 쉬워집니다.
  • 제한 사항: 기존 파일을 덮어쓸 수 있습니다.

설치 및 실행

설치 여부 확인

csplit --version

sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora

실제 사용 예제

세션별 분리

START 줄마다 새 파일을 만듭니다.

csplit app.log '/^START/' '{*}'

줄 번호로 분할

100번째 줄 앞에서 나눕니다.

csplit notes.txt 100

구간 수 제한

두 번만 나눕니다.

csplit app.log '/^START/' '{2}'