> 텍스트 처리 및 검색 > paste

paste: 파일들을 병합하여 출력

`paste` 명령어는 여러 파일의 해당 라인들을 병합하여 표준 출력으로 내보냅니다. 각 파일의 라인들을 구분자(delimiter)로 연결하여 수평적으로 합치는 데 사용됩니다. 이는 데이터 파일을 결합하거나, 특정 형식으로 데이터를 재구성할 때 유용합니다.

개요

`paste` 명령어는 여러 입력 파일에서 동일한 라인 번호의 내용을 가져와 하나의 라인으로 결합합니다. 기본적으로 탭(tab) 문자로 각 파일의 내용을 구분하지만, `-d` 옵션을 사용하여 사용자 정의 구분자를 지정할 수 있습니다.

주요 특징

  • 여러 파일의 라인을 수평적으로 병합
  • 사용자 정의 구분자 지정 가능 (`-d` 옵션)
  • 표준 입력 또는 파일로부터 데이터 처리
  • 간단한 CSV 또는 TSV 파일 생성에 활용

주요 옵션

구분자 및 처리 방식

생성된 명령어:

명령어를 조합해 보세요.

설명:

`paste` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

기본 사용법 (탭 구분)

echo "apple\nbanana" > fruits.txt
echo "red\nyellow" > colors.txt
paste fruits.txt colors.txt

두 파일의 내용을 각 라인별로 탭으로 구분하여 병합합니다.

쉼표(,)로 구분하여 병합

echo "apple\nbanana" > fruits.txt
echo "red\nyellow" > colors.txt
paste -d ',' fruits.txt colors.txt

`-d` 옵션을 사용하여 쉼표를 구분자로 지정합니다.

공백으로 구분하여 병합

echo "apple\nbanana" > fruits.txt
echo "red\nyellow" > colors.txt
paste -d ' ' fruits.txt colors.txt

공백을 구분자로 사용하여 파일 내용을 병합합니다.

여러 구분자 순환 사용

echo "1\n2\n3" > file1.txt
echo "A\nB\nC" > file2.txt
echo "X\nY\nZ" > file3.txt
paste -d ',=' file1.txt file2.txt file3.txt

`-d` 옵션에 여러 구분자를 지정하면, 각 파일에 순환적으로 적용됩니다.

표준 입력과 함께 사용

echo "1\n2\n3" | paste -d ',' - <(echo "A\nB\nC")

파일 이름 대신 `-`를 사용하여 표준 입력을 `paste`의 입력으로 활용합니다.

직렬 처리 (-s 옵션)

echo "1\n2\n3" > num.txt
echo "A\nB\nC" > char.txt
paste -s num.txt char.txt

`-s` 옵션을 사용하여 각 파일의 모든 라인을 먼저 처리한 후 다음 파일로 넘어갑니다.

팁 & 주의사항

`paste` 명령어는 간단하지만 강력한 텍스트 처리 도구입니다. 특히 CSV 파일 생성이나 로그 파일 분석 시 유용하게 활용될 수 있습니다.

활용 팁

  • **여러 구분자 활용**: `-d` 옵션에 여러 문자를 지정하면, 각 입력 파일에 대해 순환적으로 구분자가 적용됩니다. 예를 들어 `paste -d ',|' file1 file2 file3`는 `file1`과 `file2` 사이에 `,`를, `file2`와 `file3` 사이에 `|`를 사용합니다.
  • **표준 입력 처리**: 파일 이름 대신 `-`를 사용하면 표준 입력을 `paste`의 입력으로 사용할 수 있습니다. 이는 파이프라인에서 매우 유용합니다.
  • **다른 명령과의 조합**: `cut`, `awk`, `sed` 등 다른 텍스트 처리 명령과 함께 사용하여 더욱 복잡한 데이터 조작이 가능합니다. 예를 들어, `cut`으로 특정 열을 추출한 후 `paste`로 병합할 수 있습니다.
  • **빈 라인 처리**: 입력 파일에 빈 라인이 있을 경우, `paste`는 해당 위치에 빈 문자열을 삽입하여 구분자만 출력합니다.

동일 카테고리 명령어