특정 열을 제외한 모든 열의 패턴 바꾸기

특정 열을 제외한 모든 열의 패턴 바꾸기

첫 번째 열을 제외한 모든 열의 "콜론"을 바꾸고 싶습니다.

]chr9:67290502]N SUPP_VEC=011 SVLEN=0 SVTYPE=TRA 0 0 0 0/1:NA:58745598:23,0:--:.:TRA:BND00068094:NA:NA:chr10_8544904-chr9_67290502 ./.:NA:58745598:0,4:--:.:TRA:126434_2:NA:NA:chr10_8544903-chr9_67290501

원하는 출력

]chr9:67290502]N SUPP_VEC=011 SVLEN=0 SVTYPE=TRA 0 0 0 0/1NA5874559823,0--.TRABND00068094NANAchr10_8544904-chr9_67290502 ./.NA587455980,4--.TRA126434_2NANAchr10_8544903-chr9_67290501

시험을 마친:

sed 's/(chr*.)*.[^: ]//g'

참고: 처음 4개 열 다음에는 ":"가 고정되어 있지 않고 어디에나 있을 수 있으므로 열을 정의할 필요가 없습니다.

답변1

"열"을 생각하고 있다면 awk가 콘텐츠를 구문 분석하기를 원할 것입니다. 이상적으로는 GNU awk에 액세스할 수 있습니다.

이 시도:

awk '{for(x=2;x<=NF;x++){gsub(":","",$x)}}1'

테스트 사례:

$ echo "]chr9:67290502]N SUPP_VEC=011 SVLEN=0 SVTYPE=TRA 0 0 0 0/1:NA:58745598:23,0:--:.:TRA:BND00068094:NA:NA:chr10_8544904-chr9_67290502 ./.:NA:58745598:0,4:--:.:TRA:126434_2:NA:NA:chr10_8544903-chr9_67290501" | awk '{for(x=2;x<=NF;x++){gsub(":","",$x)}}1'
]chr9:67290502]N SUPP_VEC=011 SVLEN=0 SVTYPE=TRA 0 0 0 0/1NA5874559823,0--.TRABND00068094NANAchr10_8544904-chr9_67290502 ./.NA587455980,4--.TRA126434_2NANAchr10_8544903-chr9_67290501

답변2

아래 sed 명령을 사용해 보십시오. 매우 잘 작동합니다.

command: sed "s/://2g"`

산출

입력이 있는 명령: echo "]chr9:67290502]N SUPP_VEC=011 SVLEN=0 SVTYPE=TRA 0 0 0 0/1:NA:58745598:23,0:--:.:TRA:BND00068094:NA:NA:chr10_8544904-chr9_67290502 ./.:NA:58745598:0,4:--:.:TRA:126434_2:NA:NA:chr10_8544903-chr9_67290501"| sed "s/://2g"

산출

]chr9:67290502]N SUPP_VEC=011 SVLEN=0 SVTYPE=TRA 0 0 0 0/1NA5874559823,0--.TRABND00068094NANAchr10_8544904-chr9_67290502 ./.NA587455980,4--.TRA126434_2NANAchr10_8544903-chr9_67290501

관련 정보