파일이 두 개 있어요
파일 1
159211;exampleimage002.JPG
159212;example.jpg
159212;example with space.jpg
...
파일 2
13;"OVET";"O1";"OVET/ULKO-OVET";159212;"JELDWEN BASIC 0015 9*21 VASEN";"KPL";1;345;1;0;"Toinen testituote";
13;"OVET";"O1";"OVET/ULKO-OVET";159211;"JELDWEN BASIC 0015 9*21 OIKEA";"KPL";1;345;1;0;"Myös rivinvaihdot siirtyvät";
...
필요한 것은 "|"로 구분된 여러 이미지 파일이 있는 새 열로 이미지 이름을 추가하는 것입니다. ID는 일치해야 합니다(예: 159212(파일 1의 첫 번째 열과 파일 2의 다섯 번째 열)). 나는 이것을 하기 위해 awk를 사용해 보았지만 비참하게 실패했습니다.
(file3)을 출력하려는 경우 유일한 차이점은 마지막 열입니다.
13;"OVET";"O1";"OVET/ULKO-OVET";159212;"JELDWEN BASIC 0015 9*21 VASEN";"KPL";1;345;1;0;"Toinen testituote";"exampleimage002.JPG";
13;"OVET";"O1";"OVET/ULKO-OVET";159211;"JELDWEN BASIC 0015 9*21 OIKEA";"KPL";1;345;1;0;"Myös rivinvaihdot siirtyvät";"example.jpg|example with space.jpg";
답변1
어때요?
awk -F\; '
NR==FNR {
if (a[$1]=="") {
a[$1]="\""$2
} else {
a[$1]=a[$1]"|"$2
}
next;
}
{
print $0 a[$5] "\""
}
' file1 file2 > file3
참고: 이는 ID당 하나 이상의 일치 항목이 있다고 가정합니다. 그렇지 않으면 가짜 후행 닫는 따옴표가 나타날 수 있습니다. 이것이 문제인 경우 a[$5]
인쇄하기 전에 null이 아닌 테스트를 추가할 수 있습니다.