두 파일을 비교하고 각기 다른 열을 결합하려고합니다.awk로 반복적 인 잡기
1.txt
chr8 12 24 . . + chr1 11 12 XX4 -
chr3 22 33 . . + chr4 60 61 XXX9 -
2.txt
chr1 11 1 X1 X2 11 12 2.443 0.843 +1 SXSD 1.3020000
chr1 11 2 X3 X4 11 12 0.888 0.833 -1 XXSD -28.887787
chr1 11 3 X5 X6 11 12 0.888 0.843 +1 XXSD 2.4909883
chr1 12 4 X7 X8 11 12 0.888 0.813 -1 CMKY 0.0009223
chr1 12 5 X9 X10 11 12 0.888 0.010 -1 XASD 0.0009223
chr1 12 6 X11 X12 11 12 0.888 0.813 -1 XUPS 0.10176998
내가 1.txt
의 7th
, 8th
및 9th
열이, 2.txt
의 1st,6th
및 7th
열을 비교하고자하고, 일치하는 경우, 나는 1.txt
의 전체 라인을 인쇄 할 : 예제 파일은 2.txt.
의 3th
및 12th
열로 예상 출력은 다음
chr8 12 24 . . + chr1 11 12 XX4 - 1 1.3020000
chr8 12 24 . . + chr1 11 12 XX4 - 2 -28.887787
chr8 12 24 . . + chr1 11 12 XX4 - 3 2.4909883
chr8 12 24 . . + chr1 11 12 XX4 - 4 0.0009223
chr8 12 24 . . + chr1 11 12 XX4 - 5 0.0009223
chr8 12 24 . . + chr1 11 12 XX4 - 6 0.10176998
,745
chr8 12 24 . . + chr1 11 12 XX4 - 6 0.10176998
가 어떻게 반복적으로 검색 할 수 있습니다 및 인쇄 모든 일치 :
내 재판 awk:
awk 'NR==FNR{ a[$1,$6,$7]=$3"\t"$12; next } { s=SUBSEP; k=$7 s $8 s $9 }k in a{ print $0,a[k] }' 2.txt 1.txt
그것은 마지막 경기를 출력하고, 나는 그것이 모든 일치를 인쇄 할 수 없습니다 함께?
감사합니다. 모든 도움을 주셔서 감사합니다. 조금만 설명해 주시겠습니까? – bapors
@bapors, 환영합니다, 내 설명 참조 – RomanPerekhrest