많은 행이 포함된 두 개의 .csv 파일(쉼표로 구분)이 있습니다. 다음 두 파일에 대한 샘플 항목은 다음과 같습니다. n.csv:
X,I180,10.5.5.180,,833-006366,00,N-D,,,5.2,A52.604,5.2.02,,,,,,,8471 FX,,,,,
파일.csv:
X,3FE,1,I180,,,,I180:LT13,,,,,,,,,,,0,,,,,,NLS-A
내가 하고 싶은 일은:
- 1) f.csv의 필드($2, $4, $8, $12, $25)를 가져와 새 출력 .csv 파일의 첫 번째 열에 인쇄합니다.
- 2) n.csv의 $2가 f.csv의 $4와 일치하는 경우 n.csv 파일의 $7 필드를 가져와 새 출력 .csv 파일의 마지막 열에 인쇄합니다.
따라서 원하는 출력은 다음과 같아야 합니다.
3FE,I180,I180:LT13,,NLS-A,N-D
다음 명령을 시도했지만 마지막 열에 n.csv 파일의 $7이 인쇄되었습니다.
awk 'BEGIN { FS = OFS = "," ; } FNR==NR{ne_model[$2]=$7;x[$2]=$2;next} { if ($4!="" && $4 in x) {print $2,$4,$8,$12,$25,ne_model[$2]} }' n.csv f.csv
3FE,I180,I180:LT13,,NLS-A,
내가 무엇을 놓치고 있는지 알아내도록 도와주실 수 있나요?
답변1
너 $2
부터 까지 n.csv
안 어울려f.csv
노력하다
awk 'BEGIN { FS = OFS = "," ; }
FNR==NR{ne_model[$2]=$7;x[$2]=$2;next}
{ if ($4!="" && $4 in x) {print $2,$4,$8,$12,$25,ne_model[x[$4]]} }' n.csv f.csv
나는 (가독성을 위해 여러 줄로 나누었습니다 ne_model[$2]
)ne_model[x[$4]]
이것은
3FE,I180,I180:LT13,,NLS-A,N-D