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 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / fg - 셸 작업을 포그라운드로 가져오기

Linux / 명령어 / fg - 셸 작업을 포그라운드로 가져오기

Linux fg 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux getent 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / dirname - 경로에서 디렉터리 부분 추출

Linux / 명령어 / dirname - 경로에서 디렉터리 부분 추출

Linux dirname 명령어로 경로의 디렉터리 부분을 추출하는 방법을 설명합니다. 입력 형태별 결과와 basename, realpath의 차이 및 셸 스크립트 활용법을 정리합니다.

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux에서 디스크를 관리할 때 필요한 파티션 생성, 파일 시스템 포맷, 마운트 방법을 정리했습니다.

Linux / 명령어 / fmt - 일반 텍스트 문단의 줄바꿈 조정

Linux / 명령어 / fmt - 일반 텍스트 문단의 줄바꿈 조정

Linux fmt 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 리눅스 Bash 명령어 연결 연산자: ;, &&, ||, &, | 사용법

Linux / 리눅스 Bash 명령어 연결 연산자: ;, &&, ||, &, | 사용법

리눅스 Bash의 ;, &&, ||, &, |, |&, ! 차이를 종료 상태와 실제 예제로 설명합니다. 조건부 실행, 백그라운드 작업, 파이프라인과 pipefail 사용법까지 정리합니다.

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux resolvectl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / ping - 호스트 응답과 왕복 시간 확인

Linux / 명령어 / ping - 호스트 응답과 왕복 시간 확인

Linux ping 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / chown - 파일 소유자와 그룹 변경

Linux / 명령어 / chown - 파일 소유자와 그룹 변경

Linux chown 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / stat - 파일 정보와 메타데이터 확인

Linux / 명령어 / stat - 파일 정보와 메타데이터 확인

Linux stat 명령어로 파일 크기, 권한, 소유자, inode와 타임스탬프를 확인하는 방법을 설명합니다. atime·mtime·ctime·Birth의 차이와 출력 형식, 파일 시스템 조회법도 정리합니다.