응답하지 않는 공급업체와 협력하고 있는데 Excel에서 공급업체의 CSV 파일 인벤토리를 전혀 검색할 수 없습니다. 우리 팀은 Unix를 모르거나 사용하지 않지만 간단한 IF 루프 한두 개와 awk
OR을 사용하면 sed
문제가 해결된다는 것을 알고 있습니다.
원본 파일은 다음과 같습니다.
Col1 Col2 ... Col8 ..... Col30 Col31 .. Col30+N
---------------------
UPC MasterSKU ... UnitCost ..... AltSKU1 AltSKU2 .. AltSKU_N
일부 MasterSKU에는 AltSKU가 몇 개만 있고 일부에는 318개가 있습니다. 이 최대 금액은 매달 변경될 수 있습니다!
예:
UPC MasterSKU Cost AltSKU1 AltSKU2 .... AltSKU_N
------------------------------------------------------
10000001 ABC $5.00 ABC01 ABC001 ABC1
10000002 BCD $2.34 BCD01 BCD.go BD.c.2 ...200 AltSKUs later... BDDCD7
우리 팀에는 Excel이 필요하고 검색 알고리즘이 제한되어 있으므로 단일 열에 모든 AltSKU를 나열하고 비용을 옆에 표시해야 합니다.
이것이 내가 얻고 싶은 결과입니다:
UPC MasterSKU Cost AltSKU
--------------------------
10000001 ABC $5.00 ABC01
10000001 ABC $5.00 ABC001
10000001 ABC $5.00 ABC1
10000002 BCD $2.34 BCD01
10000002 BCD $2.34 BCD.go
10000002 BCD $2.34 BCD01
... repeat for 200 AltSKUs
10000002 BCD $2.34 BDDCD7
참고: ABC MasterSKU에 무슨 일이 일어났나요? AltSKU가 3개뿐이므로 줄도 3개만 있습니다. 비어 있지 않은 처음 3개의 AltSKU 뒤에는 315개의 빈 AltSKU가 존재하지 않습니다.
답변1
awk에서 이를 수행하는 한 가지 방법은 다음과 같습니다.
암호:
$ awk '{ for (i=4; i <= NF; i++) print $1, $2, $3, $i }' file1
파일 1:
10000001 ABC $5.00 ABC01 ABC001 ABC1
10000002 BCD $2.34 BCD01 BCD.go BD.c.2 BDDCD7
결과:
10000001 ABC $5.00 ABC01
10000001 ABC $5.00 ABC001
10000001 ABC $5.00 ABC1
10000002 BCD $2.34 BCD01
10000002 BCD $2.34 BCD.go
10000002 BCD $2.34 BD.c.2
10000002 BCD $2.34 BDDCD7