참조 파일에서 값 삽입

참조 파일에서 값 삽입

수천 개의 행이 포함된 일일 CSV 파일이 있습니다.
두 개의 열을 연결한 다음 특정 열의 값이 다른 파일의 테이블과 일치하면 새 열을 삽입하라는 메시지가 나타납니다. Null 값이 예상됩니다.

단순화된 데이터(열 3 결합):

매일.csv

HVDS,1810,HVDS_1810,"match value",xxxxx
HVRS,5230,HVRS_5230,"match value",xxxxx
WPHV,0,WPHV_0000,"no match",xxxxx

참조 파일에는 두 개의 열이 있습니다. $1을 검색하고 위에 $2를 삽입하세요.

참조.csv

HVDS_1810,dfTVfsd
HVRS_5230,UtsfeOO
WPHV_4242,BBnnstd

어디서부터 시작해야 할지에 대한 몇 가지 아이디어가 필요합니다.

답변1

제가 올바르게 이해했다면 귀하의 질문에서 "불일치"를 의 값으로 바꿔야 합니다 ref.csv. 가능한 해결책은 다음과 같습니다 awk.

awk -F',' 'BEGIN { OFS = "," } FNR==NR { m[$1] = $2; next; } { if ($3 in m) { $4 = "\"" m[$3] "\""; } else { $4 = "\"" "\""; } print; }' ref.csv daily.csv

설명:
FNR==NR첫 번째 파일을 읽을 때 True입니다. index의 첫 번째 열과 value의 세 번째 열로 배열을
만듭니다 . 그런 다음 두 번째 블록에서 두 번째 파일을 읽고( 첫 번째 블록의 명령으로 인해) 열 3이 배열의 인덱스인지 확인하고 , 그렇다면 새 열 값을 설정합니다. 그렇지 않은 경우 null을 설정합니다.m
nextm

관련 정보