awk를 사용하여 여러 열을 콜론으로 연결하는 방법은 무엇입니까?

awk를 사용하여 여러 열을 콜론으로 연결하는 방법은 무엇입니까?

다음과 같은 파일이 있습니다.

head 1kG_MDS6.bim
1   rs2073813   0   753541  A   G
1   rs60320384  0   769223  G   C
1   rs59066358  0   771967  A   G
...

":"으로 구분된 첫 번째, 네 번째, 여섯 번째 및 다섯 번째 열을 순서대로 연결하고 싶습니다.

따라서 출력은 다음과 같습니다.

1:753541:G:A
1:769223:C:G
1:771967:G:A

나는 이것을 시도했습니다 :

awk ' { print $1 $4 $6 $5 ":" $NF } ' 1kG_MDS6.bim > 1kG_MDS6_SNPs1.txt

하지만 마지막 두 열 ":"과만 조인됩니다.

답변1

출력 필드 구분자를 사용합니다.

awk 'BEGIN{OFS=":"} {print $1,$4,$6,$5}' file

산출:

1:753541:G:A
1:769223:C:G
1:771967:G:A

답변2

printf 사용

awk ' { printf "%s:%s:%s:%s\n",$1,$4,$6,$5; } ' 

어디

  • %s 일치하는 매개변수를 문자열로 바꿉니다.
  • \n 처리된 각 줄에 개행 문자가 추가됩니다.

관련 정보