개요
`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`는 해당 위치에 빈 문자열을 삽입하여 구분자만 출력합니다.