본문 바로가기

리눅스

paste 명령어

728x90

paste 명령어

paste 명령어는 두 개 이상의 파일 또는 텍스트를 가로로 병합하여 출력하는 유닉스 및 리눅스 환경에서 사용되는 명령어입니다. 이 명령어를 사용하면 여러 파일이나 텍스트 스트림을 하나의 파일 또는 스트림으로 연결하거나 병합할 수 있습니다. 주로 텍스트 파일의 내용을 합치는데 사용되며, 파일을 열고 닫을 필요 없이 간편하게 작업할 수 있습니다.

paste 명령어의 기본 구문

paste [옵션] 파일1 파일2 ...

여기서 "[옵션]"은 명령어 실행 시 사용할 수 있는 옵션을 나타내며, "파일1", "파일2", ... 등은 병합하려는 파일들의 이름 또는 경로입니다.

  • 주요 옵션
    • -d 옵션:
      • 사용법: paste -d DELIMITER
      • DELIMITER로 지정한 문자열을 사용하여 필드(열)를 구분합니다.
    • -s 옵션:
      • 사용법: paste -s
      • 파일들을 세로로 병합하며, 각 파일의 내용을 새로운 행으로 나란히 표시합니다.

사용 예시

  • -d 옵션: 필드 구분자 지정
    • -d 옵션을 사용하여 필드 구분자를 지정할 수 있습니다. 기본적으로는 탭 문자로 필드를 구분합니다.
paste -d',' file1.txt file2.txt
  • -s 옵션: 세로 병합
    • -s 옵션을 사용하여 파일들을 세로로 병합할 수 있습니다.
paste -s file1.txt file2.txt
  • 여러 파일 병합 예시
    • 두 개의 파일을 가로로 병합하는 예시입니다.
paste file1.txt file2.txt > merged.txt
  • 필드 구분자 지정 예시
    • 쉼표(,)로 필드를 구분하는 두 파일을 가로로 병합하는 예시입니다.
paste -d',' file1.txt file2.txt > merged.csv
  • 세로 병합 예시
    • 파일1과 파일2의 내용을 세로로 병합하는 예시입니다.
paste -s file1.txt file2.txt > merged.txt
728x90
  • 예제 파일(111.txt, aaa.txt)
$ cat 111.txt
111
222
333
444
555
$ cat aaa.txt
aaa
bbb
ccc
ddd
eee
  • paste 명령으로 두 파일을 한 줄씩 병합하여 출력
paste 111.txt aaa.txt
$ paste 111.txt aaa.txt
111	aaa
222	bbb
333	ccc
444	ddd
555	eee
  • -s 옵션은 수직으로 되어있는 값을 읽어 수평으로 출력
paste -s 111.txt aaa.txt
$ paste -s 111.txt aaa.txt
111	222	333	444	555
aaa	bbb	ccc	ddd	eee
  • -d 옵션은 구분자를 지정하여 출력
paste -d ., 111.txt aaa.txt
paste -d '.' 111.txt aaa.txt
$ paste -d '.' 111.txt aaa.txt
111.aaa
222.bbb
333.ccc
444.ddd
555.eee

 

  • -s -d 옵션으로 구분자탭(\t)개행(\n) 사용하여 출력
paste -s -d '\t\n' 111.txt
$ paste -s -d '\t\n' 111.txt
111	222
333	444
555
$ paste -s -d '\t\t\n' 111.txt
111	222	333
444	555
$ paste -s -d '\t\t\t\n' 111.txt
111	222	333	444
555

php 패키지 목록을 세로에서 가로로 출력

$ cat a.txt | sort
php
php-cli
php-common
php-devel
php-fpm
php-gd
php-intl
php-json
php-mbstring
cat a.txt | sort | paste -d ' ' -s
$ cat a.txt | sort | paste -d ' ' -s
php php-cli php-common php-devel php-fpm php-gd php-intl php-json php-mbstring php-mysqlnd php-opcache

 

728x90