Linux / 명령어 / paste - 파일의 행을 가로로 결합
paste는 여러 파일에서 같은 순서의 행을 가져와 한 행으로 나란히 붙입니다. 기본 구분자는 탭이며, 세로로 쌓인 값을 한 줄로 바꾸는 데도 사용할 수 있습니다.
paste 명령어란?
cat이 파일 내용을 위아래로 이어 붙이는 것과 달리 paste는 첫째 행끼리, 둘째 행끼리 대응시킵니다. 파일 길이가 다르면 부족한 쪽은 빈 필드로 채워집니다.
기본 문법
paste [옵션] [파일 ...]
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man paste으로 현재 시스템의 설명을 확인하세요.
사용 예제
두 파일을 열로 결합
첫 파일의 각 행 옆에 두 번째 파일의 대응 행을 붙입니다.
paste names.txt scores.txt
구분자 지정
탭 대신 콜론으로 두 파일의 값을 구분합니다.
paste -d ':' names.txt scores.txt
한 파일을 한 행으로 바꾸기
-s는 파일을 연속해서 읽으며 행을 가로로 붙입니다.
paste -s -d ',' names.txt
두 입력의 같은 줄을 합치기
두 파일의 첫째 줄끼리, 둘째 줄끼리 나란히 놓는 명령입니다. 아래 예제는 Bash의 프로세스 치환을 이용하므로 실제 파일을 만들지 않습니다.
paste -d, <(printf 'Ana\nBob\n') <(printf '7\n12\n')
예시 출력:
Ana,7 Bob,12
paste는 같은 키를 검색하는 join과 다르게 줄 위치만 맞춥니다. 한쪽 입력의 줄 수가 더 적으면 부족한 칸은 빈 값으로 채워집니다. POSIX 셸처럼 프로세스 치환을 지원하지 않는 환경에서는 두 입력을 임시 파일로 준비하세요.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-d 목록 |
붙이는 위치에 사용할 구분자를 지정합니다. |
-s |
파일별 행을 순차적으로 한 줄에 결합합니다. |
- |
표준 입력을 파일 인수 자리에 사용합니다. |
사용할 때 주의할 점
두 파일의 대응 행이 같은 대상을 가리키는지 먼저 확인하세요. 행 순서가 다르면 잘못된 값이 나란히 붙어도 오류가 나지 않습니다. 공통 키로 행을 연결해야 한다면 정렬 조건을 확인한 뒤 join을 사용합니다.
자주 묻는 질문
paste와 join의 차이는 무엇인가요?
paste는 행 번호대로 붙이고, join은 공통 필드의 값이 같은 행을 연결합니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 paste 관련 공식 문서에서 확인할 수 있습니다.









