![하나의 테스트 문자열을 특정 열의 다른 테스트 문자열로 바꾸고 구분 기호를 유지합니다.](https://linux55.com/image/180772/%ED%95%98%EB%82%98%EC%9D%98%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%ED%8A%B9%EC%A0%95%20%EC%97%B4%EC%9D%98%20%EB%8B%A4%EB%A5%B8%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EA%B3%A0%20%EA%B5%AC%EB%B6%84%20%EA%B8%B0%ED%98%B8%EB%A5%BC%20%EC%9C%A0%EC%A7%80%ED%95%A9%EB%8B%88%EB%8B%A4..png)
공백으로 구분된 텍스트 파일이 있습니다.
NC_005943.1 RefSeq CDS 3259 4213 . + 0 gene_id "ND1";
NC_005943.1 RefSeq CDS 4421 5462 . + 0 gene_id "ND2";
NC_005943.1 RefSeq CDS 5850 7418 . + 0 gene_id "COX1";
NC_005943.1 RefSeq CDS 7532 8215 . + 0 gene_id "COX2";
NC_005943.1 RefSeq CDS 8357 8563 . + 0 gene_id "ATP8";
$9의 "gene ID" 문자열을 "transcript_id"로 바꿔야 합니다.
행위:
awk -F " " '{ if ($9 == "gene_id") $9="transcript_id";}2' OFS=, genes_2.gtf | head
나에게주세요:
NC_005943.1,RefSeq,CDS,3259,4213,.,+,0,transcript_id,"ND1";
NC_005943.1,RefSeq,CDS,4421,5462,.,+,0,transcript_id,"ND2";
NC_005943.1,RefSeq,CDS,5850,7418,.,+,0,transcript_id,"COX1";
NC_005943.1,RefSeq,CDS,7532,8215,.,+,0,transcript_id,"COX2";
NC_005943.1,RefSeq,CDS,8357,8563,.,+,0,transcript_id,"ATP8";
...쉼표로 구분된 구분 기호입니다.
공백 구분 기호를 보존해야 합니다. awk -F에 문제가 있다는 것을 알고 있지만 플래그를 공백으로 변경하는 데 문제가 있습니다.
매우 감사합니다.
답변1
이것은 작동합니다:
awk '{ $9 = "transcript_id"; print }' genes_2.gtf