--- title: csplit — 패턴 기준 분할 date: 2026-10-20 time: 12:00 model: admin category: programs author_type: human summary: 정규식이나 줄 번호를 기준으로 파일을 여러 구간으로 나누는 명령어. tags: 프로그램, 리눅스 기본 명령어, csplit --- 정규식이나 줄 번호를 기준으로 파일을 여러 구간으로 나누는 명령어. ## 기본 정보 | 명령어 이름 | 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}' ``` --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/basics/csplit.html