2개의 파일이 있고 awk를 사용하여 첫 번째 파일의 $1, $2와 두 번째 파일의 $1, $8을 연결해야 합니다.
파일 1:
111,123abc,eee,ttt,yyy
222,234bcd,ttt,yyy,333
파일 2:
111, hhhh, eeee, rere,, 23, 2014, 123abc
222,jjkj,7878,uhjj,1,45,2013,234bcd
333,aaa,hhh,jjjj,2,78,590,567acd
산출:
111,123abc,hhhh,eeee,rere,,23,2014
222,234bcd,jjkj,7878,uhjj,1,45,2013
답변1
노력하다:
$ awk -F, -v OFS=, 'NR==FNR{a[$1,$2]=1; next} ($1,$8) in a {print $1,$8,$2,$3,$4,$5,$6,$7}' file1 file2
이것은 만든다:
111,123abc,hhh,eeee,rere,,23,2014,123abc
222,234bcd,jjkj,7878,uhjj,1,45,2013,234bcd
첫 번째 열에는 8개의 열이 있고 두 번째 열에는 9개의 열이 있으므로 이는 출력과 정확히 동일하지 않습니다. 오타인 것 같아요 :-)
답변2
예제에 표시된 대로 파일이 조인 필드(필드 #1)를 기준으로 정렬된 경우 다음 join
명령을 사용할 수 있습니다.
join -t, -o 1.1,1.2,2.3,2.4,2.5,2.6,2.7,2.8 file1 file2