나는 file1을 좋아한다:
6688249-7,03/02/2017,5515, 2017년 2월 2일
16914917-8,03/02/2017,5521, 2017년 2월 2일
파일 2도 있습니다.
5515,6688249-7,06-02-2017 04:25:47 PM,ASIG,엘리자베스 프리에토
5515,6688249-7,06-02-2017 04:56:32 PM,URR,엘리자베스 프리에토
5521,16914917-8,06-02-2017 오후 12:51:04,지정,SOLANGE
5521,16914917-8,27-02-2017 04:32:11 PM(예: SOLANGE)
다음과 같은 file3을 원합니다.
6688249-7,03/02/2017,5515,02-feb-17,06-02-2017 04:25:47 PM,ASIG,엘리자베스 프리에토
6688249-7,03/02/2017,5515,02-feb-17,06-02-2017 04:56:32 PM,URR,엘리자베스 프리에토
16914917-8,03/02/2017,5521,02-feb-17,06-02-2017 12:51:04 PM,ASIGN,SOLANGE
16914917-8,03/02/2017,5521,02-feb-17,27-02-2017 04:32:11 PM,Ex,SOLANGE
2번째 컬럼의 키(3번째 컬럼의 file1, 1번째 컬럼의 file1)를 통해 file2의 3번째, 4번째, 5번째 컬럼을 file1에 넣는다는 뜻이다.
답변1
다음과 같은 것으로 충분합니다.
awk 'BEGIN{FS=OFS=","}NR==FNR{a[$3]=$0;next}$1 in a{print a[$1],$3,$4,$5}' file1 file2
답변2
출력 정렬 순서가 중요하지 않은 경우 작업처럼 보입니다.join
join -1 3 -2 1 -t, -o 1.1,1.2,1.3,1.4,2.3,2.4,2.5 <(sort -k3,3 -t, file1) \
<(sort -k1,1 -t, file2)
6688249-7,03/02/2017,5515,02-feb-17,06-02-2017 04:25:47 PM,ASIG,ELIZABETH PRIETO
6688249-7,03/02/2017,5515,02-feb-17,06-02-2017 04:56:32 PM,URR,ELIZABETH PRIETO
16914917-8,03/02/2017,5521,02-feb-17,06-02-2017 12:51:04 PM,ASIGN,SOLANGE
16914917-8,03/02/2017,5521,02-feb-17,27-02-2017 04:32:11 PM,Ex,SOLANGE
입력은 조인 키에 따라 정렬 되어야 합니다 join
. 위의 예에서는 프로세스 대체를 사용합니다(다음과 같은 쉘에서 지원됨).bash