에 몇 일반적으로 열이보다 행으로 이동합니다 :어떻게 특정 열에서 패턴을 포함하는 행을 내가 이런 큰 탭 파일이 UNIX
rs980 INPP5B missense I 749 NP_001284363.1
rs980 INPP5B reference L 749 NP_001284363.1
rs980 INPP5B missense F 749 NP_001284363.1
rs980 INPP5B missense I 913 NP_005531.2
rs980 INPP5B reference L 913 NP_005531.2
rs980 INPP5B missense P 913 NP_005531.2
rs1921 ISG15 reference S 83 NP_005092.1
rs1921 ISG15 missense N 83 NP_005092.1
rs1921 ISG15 missense T 83 NP_005092.1
rs2607 HEATR1 missense K 2133 NP_060542.4
rs2607 HEATR1 missense Q 2133 NP_060542.4
rs2607 HEATR1 reference E 2133 NP_060542.4
을 나는 모든 행을 싶습니다 'reference'패턴을 생성하고 참조 패턴이없는 행 바로 다음에있는 한 열을 이동 시키며 또한 첫 번째, 다섯 번째 및 여섯 번째 열에 일반적으로 문자열을 포함합니다. 그래서 출력은 다음과 같아야합니다 등등
rs980 INPP5B missense I 749 NP_001284363.1 L
rs980 INPP5B missense F 749 NP_001284363.1 L
rs980 INPP5B missense I 913 NP_005531.2 L
rs980 INPP5B missense P 913 NP_005531.2 L
rs1921 ISG15 missense N 83 NP_005092.1 S
rs1921 ISG15 missense T 83 NP_005092.1 S
rs2607 HEATR1 missense K 2133 NP_060542.4 E
rs2607 HEATR1 missense Q 2133 NP_060542.4 E
그리고를 ... 나는 다른 사람과 참조를 분할하지만 떠들썩한 파티에서 동일한 파일에 그것을 할 필요가 누구에 두 개의 파일을 통해 AWK와 배열에 그것을 가지고 . 더 간단한 방법으로이 작업을 수행 할 수 있습니까? 미리 감사드립니다.
예 @Inian. 나는 두 파일을 수행하여 참조와 다른 것들을 분리한다. 이런 식으로 나는 AWK에 의해 두 파일에 일반적으로해야보다 함께 열을 가입하는
awk 'BEGIN {FS=OFS="\t"} NR==FNR {h[$2] = $1; next} {print $1,$2,$3,$4,$5,$6,h[$4] file_1 file_2 > output_file
같은 다음 명령 무언가를하고 난 의 다른 컬럼이 컬럼을 관련시키는 AWK에 의해 배열을 생성 출력 파일에서 인쇄하고 싶은 참조. ,
INPP5B reference L rs980;749;NP_001284363.1
등 내가
awk 'BEGIN {FS=OFS="\t"} NR==FNR {h[$4] = $3; next} {print $1,$2,$3,$4,h[$4]}' file_others file_reference > output_file
이 내가 그것을 얻을 방법에 대한 간단한 요약을 적용
INPP5B missense I rs980;749;NP_001284363.1
INPP5B missense F rs980;913NP_005531.2
및 참조 : 요약하면 하나 개의 파일은 같다 하지만 나는 같은 원본 파일에서해야한다. 사전
다양한 중복 필드의 일부를 필터링, 당신에게 에드 감사합니다. –
잭맨에게 감사드립니다. 올바르게 작동합니다. 이해한다면 먼저 관심있는 열이있는 키를 생성 한 다음 $ 3이 참조와 같으면 키의 네 번째 열만 고려하십시오. 마지막으로 세 번째 열이 참조와 다른 경우 모든 열을 인쇄하고 키 열과 같으면 문자를 넣습니다. –
중요한 비트는'NR == FNR' :'NR'은 지금까지 처리 된 총 레코드 수입니다. 'FNR'은 현재 파일 *에 대해 지금까지 처리 된 레코드의 수입니다. NR == 첫 번째 파일에 대해서만 FNR이 참일 수 있습니다. –