텍스트 파일 합치기 — copy 명령·PowerShell·브라우저 도구로 하는 법
여러 텍스트 파일을 하나로 이어 붙이는 절차. copy /b·PowerShell Get-Content, 그리고 이 사이트의 브라우저 도구.
| 개발사 | — |
|---|---|
| 라이선스 | 무료 — 윈도우 기본 명령(copy /b·PowerShell) |
| 가격 | 무료 |
| 현재 버전 | 미확인 |
| 확인일 | — |
| 지원 OS | 윈도우 10·11 |
| 공식 바로가기 | learn.microsoft.com |
먼저 정할 것 두 가지
텍스트 파일 합치기는 명령 한 줄로 끝나는 작업이지만, 시작 전에 두 가지를 정해 두면 다시 하는 일이 없습니다.
- 순서 — 파일이 붙는 순서가 중요한가? 로그처럼 시간순이 의미 있는 자료라면 순서를 직접 지정해야 합니다.
- 인코딩 — 한글이 들어 있는가? 원본 파일들의 인코딩이 서로 다르면 합친 뒤 글자가 깨집니다. 이 경우 PowerShell 방식을 씁니다.2,3
둘 다 상관없는 단순한 영문 로그라면 아래 첫 번째 방법이 가장 빠릅니다.
방법 1 — 명령 프롬프트 copy 명령
윈도우에 기본으로 들어 있는 명령입니다. 설치할 것이 없습니다.
- 합칠 파일들이 있는 폴더를 탐색기에서 엽니다.
- 주소 표시줄에
cmd를 입력하고 엔터를 눌러 그 폴더에서 명령 프롬프트를 엽니다. - 다음 명령을 입력합니다. 마이크로소프트 공식 문서에 나오는 예시 형태입니다.1
copy *.txt Combined.txt공식 문서 설명에 따르면 원본에 파일을 여러 개 지정하면 copy 명령이 대상에 지정된 파일 이름으로 모든 파일을 하나로 결합합니다. 그리고 파일을 결합할 때는 결합된 파일을 ASCII 파일로 가정합니다.1
순서를 직접 정하려면 +로 이어 적습니다.1
copy a.txt + b.txt + c.txt Combined.txt공식 문서의 예시도 같은 형태입니다(copy mar89.rpt + apr89.rpt + may89.rpt Report). 문서는 파일을 결합하면 대상 파일이 현재 날짜·시간으로 표시되며, 대상을 생략하면 목록의 첫 번째 파일 이름으로 저장된다고 함께 밝히고 있습니다.1
방법 2 — PowerShell(한글이 들어 있을 때)
인코딩을 지정해야 하거나 결과를 더 정확히 다루고 싶을 때 씁니다.
- 폴더에서 PowerShell을 엽니다.
- 다음처럼 읽어서 한 파일로 씁니다.
Get-Content .\a.txt, .\b.txt, .\c.txt | Set-Content .\Combined.txtGet-Content는 공식 문서 설명대로 파일 내용을 한 번에 한 줄씩 읽어 각 줄을 나타내는 개체 컬렉션으로 반환합니다. 인코딩을 지정하려면 양쪽에 -Encoding을 붙입니다.2,3
Get-Content .\a.txt, .\b.txt -Encoding utf8 | Set-Content .\Combined.txt -Encoding utf8공식 문서 기준 Set-Content의 -Encoding 기본값은 utf8NoBOM이며, 허용되는 값에는 ascii, unicode, utf8, utf8BOM, utf8NoBOM, utf32 등이 있습니다. 프로그램에 따라 BOM 유무가 문제가 되므로 결과를 넣을 곳에 맞춰 고릅니다.3
줄 단위가 아니라 파일 전체를 하나의 문자열로 읽어야 한다면 -Raw를 씁니다. 공식 문서 설명에 따르면 -Raw 없이는 내용이 줄 바꿈으로 구분된 문자열 배열로 반환됩니다.2
Get-Content .\a.txt -Raw방법 3 — 브라우저 도구
명령창이 부담스럽거나 회사 PC처럼 제약이 있는 환경이라면 이 사이트의 브라우저 도구를 씁니다. 주소는 /tools/text-merge/입니다.
- 도구 페이지를 엽니다.
- 합칠 텍스트 파일들을 고릅니다.
- 목록에서 순서를 정합니다. 화면에서 순서를 눈으로 확인하며 조정할 수 있다는 점이 명령 방식과 다릅니다.
- 결과를 확인하고 내려받습니다.
실전 1 — 파일 사이에 구분선 넣기
여러 로그를 합치면 어디서 파일이 바뀌었는지 알 수 없게 됩니다. PowerShell로 파일마다 이름을 머리글로 넣으며 합치는 방법이 있습니다.
Get-ChildItem *.txt | ForEach-Object {
"===== $($_.Name) ====="
Get-Content $_.FullName
} | Set-Content Combined.txt -Encoding utf8결과 파일을 열면 각 원본이 어디서 시작하는지 바로 보입니다. 나중에 문제를 추적할 때 이 한 줄이 큰 차이를 만듭니다.2,3
실전 2 — 순서를 이름 기준으로 정렬해 합치기
파일명이 log1.txt, log2.txt … log10.txt처럼 번호로 끝나면 이름순 정렬이 1, 10, 2 순으로 어긋납니다. 순서가 중요한 자료라면 파일명을 직접 나열하는 방식이 가장 확실합니다.1
copy log1.txt + log2.txt + log3.txt Combined.txt파일이 많다면 이름을 log01, log02처럼 자릿수를 맞춰 바꿔 둔 뒤 와일드카드를 쓰는 방법도 있습니다.
실전 3 — 합치기 전에 확인할 것
| 확인 항목 | 왜 |
|---|---|
| 결과 파일명이 원본과 겹치지 않는가 | 같은 폴더에서 *.txt로 합치면 결과 파일이 대상 목록에 다시 들어갈 수 있음 |
| 원본 인코딩이 같은가 | 다르면 합친 뒤 한글이 깨짐. PowerShell에서 인코딩 지정2,3 |
| 마지막 줄에 줄바꿈이 있는가 | 없으면 다음 파일의 첫 줄과 붙어 버림 |
| 텍스트 파일이 맞는가 | 공식 문서는 이진 파일 결합 시 /b가 필요하며 결과가 사용 불가능할 수 있다고 주의를 표시1 |
| 원본 백업이 있는가 | 결과 파일명을 잘못 지정해 원본을 덮어쓰는 사고 방지 |
자주 막히는 것
- 한글이 깨진다 — 원본 인코딩이 서로 다른 경우입니다. PowerShell에서
-Encoding으로 읽기·쓰기 인코딩을 맞춰 지정합니다. 기본값은utf8NoBOM입니다.2,3 - 파일 순서가 예상과 다르다 — 와일드카드는 순서를 보장하지 않습니다.
+로 파일을 이어 적어 순서를 명시합니다.1 - 결과 파일이 계속 커진다 — 결과 파일이 원본과 같은 폴더에 같은 확장자로 있으면 다음 실행 때 자신을 다시 포함할 수 있습니다. 결과는 다른 폴더나 다른 확장자로 저장합니다.
- 줄이 붙어 버린다 — 원본 마지막 줄에 줄바꿈이 없으면 다음 파일 첫 줄과 이어집니다. 위의 구분선 넣기 방식으로 처리하면 함께 해결됩니다.
- 덮어쓸지 묻는 메시지가 성가시다 — 공식 문서에
/y와/-y옵션으로 확인 메시지 표시 여부를 제어할 수 있다고 안내되어 있습니다.1
비슷한 방법
기능이 겹치는 것만 적었습니다. 순위는 매기지 않습니다.
| 방법 | 겹치는 기능 | 다른 점 |
|---|---|---|
| 텍스트 편집기에서 직접 붙여넣기 | 파일 합치기 | 파일이 몇 개일 때만 현실적. 수십 개는 무리 |
| Notepad++ 등 편집기의 여러 파일 열기 | 여러 텍스트 파일 다루기 | 보기·편집이 목적이고 자동 결합은 아님 |
| 브라우저 도구(/tools/text-merge/) | 파일 합치기 | 설치·명령 없이 화면에서 순서 확인 가능 |
어떤 방법을 고를지 정리한 내용은 텍스트 파일 합치기 안내 페이지에도 요약되어 있습니다.