파일이 두 개 있어요
원본 텍스트: (5000개 항목)
Chr Position
chr1 879108
chr1 881918
chr1 896874
…
및 대립유전자 빈도를 포함하는 파일(2000개 항목)
Chr Position MAF
chr1 881918 0.007
chr1 979748 0.007
chr1 1120377 0.007
chr1 1178925 0.036
원시 파일을 대립유전자 빈도와 일치시키고 5000개의 항목이 포함된 출력 파일을 인쇄하고 싶습니다. awk나 sed로 할 수 있나요?
Chr Position MAF
chr1 879108
chr1 881918 0.007
chr1 896874
…
답변1
나는 join
당신에게 필요한 것을 사용하고 얻을 수 있습니다awk
$ cat original
chr1 879108
chr1 881918
chr1 896874
$ cat freq
chr1 881918 0.007
chr1 979748 0.007
chr1 1120377 0.007
chr1 1178925 0.036
$ join -a1 -j 2 --nocheck-order original freq | awk '{print $2, $1, $4}'
chr1 879108
chr1 881918 0.007
chr1 896874
여기서는 두 번째 필드와 일치하는 -a1
첫 번째 파일의 모든 줄을 인쇄하고 정렬된 입력을 확인하지 않음을 의미합니다. 파이프는 기둥을 필요한 모양으로 처리합니다.-j 2
--nocheck-order
awk
답변2
다음을 시도해 볼 수도 있습니다.
awk 'NR==FNR{A[$1,$2]=$3; next} {$3=A[$1,$2]}1' file2 file