두 파일에서 데이터를 추출하고 싶습니다.
파일 1.txt:
Type Serial ID Element Hit_Possibility
Yasuo 19-2 19623 Hasaki
파일 2.csv:
Date,Name,Order,Hit Possibility
12-Aug,Ken,1,256
12-Aug,Tom,19,498
12-Aug,Ray,36,753
두 파일을 하나의 텍스트 파일로 병합하는 방법은 다음과 같습니다.
Type Serial ID Element Hit_Possibility
Yasuo 19-2 19623 Hasaki 498
이전에 시도한 내용은 다음과 같습니다.
awk -F "\"*,\"*" 'NR==1{print $0;next} NR==FNR{Arr[$2]=$NF;next}{split($2,b,"-");if(b[1] in Arr){print $0,Arr[b[1]]}}' file2.csv file1.txt
NR==FNR 부분 때문에 결과를 얻을 수 없는 것 같아요. 원하는 결과 파일을 얻으려면 어떻게 해야 하나요?
답변1
다음과 같이 시도해 볼 수 있습니다.
awk -F, '
(NR==FNR)&&(NR>1){a[$3]=$4;next} # Get keys of file2 into array a
($2 in a){$0=$0 a[$2]} # If key in file1 is part of the array a, append value
NR!=1 # Print all lines of file1 and file2 except the header
' file2 FS='[ -]' file1
답변2
Olive의 답변을 약간 단순화할 수 있습니다.
awk -F, '
NR==FNR {a[$3] = $4
next}
{print $0, a[$2]
}
' file2 FS='[ -]' file1
Type Serial ID Element Hit_Possibility
Yasuo 19-2 19623 Hasaki 498