목록이 포함된 두 파일을 두 개의 열이 포함된 하나의 파일로 병합하는 방법은 무엇입니까?

목록이 포함된 두 파일을 두 개의 열이 포함된 하나의 파일로 병합하는 방법은 무엇입니까?

일부 이메일 목록이 포함된 파일과 mail.txt이 사람들의 이름이 포함된 해당 파일이 있습니다. names.txt이제 이 파일들을 다음 구조의 하나의 파일로 병합하고 싶습니다.

name1: email1
name2: email2
.
.
.

bash를 사용하여 이를 달성할 수 있습니까?

답변1

paste다음과 같이 명령을 사용할 수 있습니다 .

paste -d ': '  names.txt /dev/null mails.txt > result.txt

작동 원리에 대한 설명:

붙여 넣기는 정확히 당신이 원하는 것입니다. 실제로 여러 열을 연결할 수 있지만 열 사이의 구분 기호로 한 문자만 전달할 수 있습니다. 이는 ':'가 두 문자이기 때문에 문제가 됩니다.

그러나 해결 방법이 있습니다. /dev/null기본적으로 시스템에서 사용할 수 있는 빈 파일인 이 파일을 사용할 수 있습니다.

이제 Paste는 세 개의 열을 연결하고 두 번째 열은 비어 있다고 생각하므로 와 사이의 구분 기호 목록(":")에 첫 번째 문자를 넣은 names.txt다음 와 null사이에 ("")를 넣습니다 null. mail.txt합계는 와 ":" + "null" + " "같습니다 ": ".

관련 정보