paste
명령어는 리눅스와 유닉스 시스템에서 shell
script
(쉘스크립트) 작성시 여러 파일 또는 텍스트를 조합하여 출력하는 데 사용되는 명령어이다. 따라서, paste
명령어를 사용하면 여러 파일이나 텍스트 스트림을 하나의 파일 또는 스트림으로 연결하거나 병합할 수 있다. 이 글에서는 paste
명령어의 기본 사용법과 다양한 예제를 통해 실제 활용법을 알아본다.
paste
기본 구문
paste
명령어의 기본적인 구문은 다음과 같다:
paste [options] file1 file2 ...
options
:paste
명령어의 옵션을 지정한다.-d DELIMITER
: DELIMITER로 지정한 문자열을 사용하여 필드(열)을 구분한다.-s
: 파일들을 세로로 병합하며, 각 파일의 내용을 새로운 행으로 나란히 표시한다.
file1
,file2
, …: 합칠 파일들을 지정한다.
Examples
1. 두 파일을 수평으로 합치기
~$ echo "A\nB\nC" > file1
~$ echo "1\n2\n3" > file2
~$ paste file1 file2
A\nB\nC 1\n2\n3
위 명령은 file1
과 file2
파일의 내용을 수평으로 합쳐 출력한다.
2. 두 파일을 수직으로 합치기
~$ echo "A" > file1
~$ echo "1" > file2
~$ paste -s file1 file2
A
1
-s
옵션을 사용하여 file1
과 file2
파일의 내용을 수직으로 합쳐 출력한다.
3. 특정 구분자로 두 파일 합치기
~$ echo "A B C" > file1
~$ echo "1 2 3" > file2
~$ paste -d',' file1 file2
A B C,1 2 3
-d
옵션을 사용하여 file1
과 file2
파일의 내용을 쉼표로 구분하여 출력한다.
4. 파일과 표준 입력 합치기
~$ echo "A B C" > file1
~$ echo "1 2 3" | paste file1 -
A B C 1 2 3
표준 입력과 file1
파일의 내용을 수평으로 합쳐 출력한다.
5. 세 파일 합치기
~$ echo "A" > file1
~$ echo "1" > file2
~$ echo "alpha" > file3
~$ paste file1 file2 file3
A 1 alpha
file1
, file2
, file3
파일의 내용을 수평으로 합쳐 출력한다.
다양한 활용 예제
1. CSV 파일 만들기
~$ echo "Name, Age, Country" > data.csv
~$ echo "John, 25, USA" >> data.csv
~$ echo "Alice, 30, Canada" >> data.csv
~$ paste -s -d'\t' data.csv
Name, Age, Country John, 25, USA Alice, 30, Canada
data.csv
파일의 내용을 탭으로 구분하여 출력하여 CSV 파일을 만든다.
2. 두 열 합치기
~$ echo "Column1" > file1
~$ echo "Column2" > file2
~$ paste -d' ' file1 file2 > merged_file
~$ cat merged_file
Column1 Column2
두 파일의 내용을 공백으로 구분하여 합쳐 merged_file
파일을 생성한다.
3. 행과 열을 반복하여 출력
~$ seq 3 | paste - - -
1 2 3
seq 3
명령으로 생성된 1부터 3까지의 숫자를 행과 열을 반복하여 출력한다.
4. 두 파일을 번갈아가며 합치기
~$ echo "A\nB\nC" > file1
~$ echo "1\n2\n3" > file2
~$ paste -d'\n' file1 file2
A\nB\nC
1\n2\n3
file1
과 file2
파일을 번갈아가며 합쳐 출력한다.
5. 두 파일의 각 행을 합치기
~$ echo "A" > file1
~$ echo "1" > file2
~$ paste -d '' file1 file2
A1
file1
과 file2
파일의 각 행을 합쳐 출력한다.
참고 사이트
- paste(1) – Linux man page:
paste
명령어에 대한 공식 문서.