paste
100%

Text-Fu · 레슨 7

paste

paste로 대응하는 줄을 병합하거나 구성 가능한 구분 기호를 사용해 줄을 직렬화하는 방법을 배웁니다.

paste 명령어는 줄을 열 형태로 결합합니다. 기본적으로 각 입력 파일에서 한 줄씩 가져와 탭으로 연결하고 모든 입력이 파일 끝에 이를 때까지 반복합니다.

파일을 나란히 병합하기

작은 파일 두 개를 만듭니다.

$ printf 'alice\nbob\n' > names.txt
$ printf 'admin\nviewer\n' > roles.txt

두 파일을 paste에 전달합니다.

$ paste names.txt roles.txt
alice	admin
bob	viewer

열 사이에 보이는 간격은 탭입니다. 한 파일 전체를 쓴 다음 다른 파일을 쓰는 cat과 달리 paste는 서로 대응하는 입력 줄을 결합합니다.

first.txt에는 AB가, second.txt에는 12가 차례로 들어 있습니다. 기본적으로 paste first.txt second.txt는 무엇을 출력하나요?

구분 기호 선택하기

기본 탭 구분 기호를 바꾸려면 -d LIST를 사용합니다. 콜론을 사용하려면 다음과 같이 실행합니다.

$ paste -d ':' names.txt roles.txt
alice:admin
bob:viewer

쉘에서 의미가 있는 구분 기호는 따옴표로 묶으세요. 목록에 여러 문자가 있으면 paste는 여러 구분 기호를 순환할 수 있지만 두 열을 만들 때는 한 문자가 가장 간단합니다.

names.txtroles.txt의 대응하는 줄을 콜론으로 연결하는 명령어는 무엇인가요?

한 파일의 줄을 직렬화하기

-s 옵션은 각 입력 파일을 직렬로 처리하여 그 줄들을 하나의 출력 줄로 연결합니다. 한 줄에 한 단어가 있는 파일을 만듭니다.

$ printf 'The\nquick\nbrown\nfox\n' > words.txt
$ paste -s words.txt
The	quick	brown	fox

구분 기호를 고르려면 -s-d를 함께 사용합니다.

$ paste -s -d ' ' words.txt
The quick brown fox

-s와 함께 여러 파일을 지정하면 각 파일은 별도의 출력 줄이 됩니다.

words.txt의 모든 줄을 공백으로 구분된 하나의 출력 줄로 연결하는 명령어는 무엇인가요?

길이가 다른 입력 처리하기

병렬 입력 파일의 줄 수가 다르면 paste는 가장 긴 파일이 끝날 때까지 계속합니다. 짧은 파일에서 빠진 값은 빈 필드가 됩니다.

$ printf 'A\nB\nC\n' > letters.txt
$ printf '1\n2\n' > numbers.txt
$ paste -d ':' letters.txt numbers.txt
A:1
B:2
C:

병렬 paste에 전달한 한 파일이 다른 파일보다 먼저 끝나면 어떻게 되나요?

표준 입력에서 입력 하나 읽기

파일 피연산자로 -를 사용하면 그 위치의 입력을 표준 입력에서 읽습니다.

$ printf 'admin\nviewer\n' | paste -d ':' names.txt -
alice:admin
bob:viewer

producer | paste names.txt -에서 - 피연산자는 무엇을 의미하나요?

줄 단위 데이터 병합을 연습하려면 다음 실습을 진행해 보세요.

  1. 간단한 텍스트 처리 - tr, col, join, paste 같은 강력한 명령어로 텍스트 데이터를 효율적으로 조작하고 분석합니다.

레슨 완료

paste 완료

이제 예측 가능한 정렬과 구분 기호로 줄 단위 입력을 결합할 수 있습니다.

  • 여러 파일에서 대응하는 줄을 병합할 수 있습니다.

  • -d로 기본 탭 구분 기호를 바꿀 수 있습니다.

  • -s로 한 파일의 줄을 직렬화할 수 있습니다.

  • 짧은 입력에서 생기는 빈 필드를 해석할 수 있습니다.

  • 입력 하나가 표준 입력에서 올 때 -를 사용할 수 있습니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
Text-Fu(으)로 돌아가기