sed 또는 awk: 기호 뒤의 숫자 제거

sed 또는 awk: 기호 뒤의 숫자 제거

예를 들어 ">" 기호 뒤의 숫자와 "_"만 제거하고 싶습니다.

>1_CR-B_CR56_t
MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
>2_R-B_R46_t
MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
>3000_N-N274_M
MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV

예상 결과:

>CR-B_CR56_t
MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
>R-B_R46_t
MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
>N-N274_M
MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV

나는 그것을 사용했지만 sed "s/>[0-9][_]//g"">"도 제거했습니다.

답변1

sed명령을 약간 수정하면 됩니다.

sed 's/^>[0-9]\+[_]/>/g'

이건 ssed야바꾸다명령을 실행하면 왼쪽 문자열을 검색하여 오른쪽 문자열로 바꿉니다. 다른 것으로 바꿀 필요는 없으며, 대신 >유지하려는 문자로 바꿀 수 있습니다.

^개행 문자의 시작 부분에서만 일치가 시작되도록 지정하는 데 사용됩니다.

여러 숫자를 일치시키는 데 에도 *사용됩니다.

답변2

awk '{sub(/^>._|^>...._/,">")}1' file
>CR-B_CR56_t
MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
>R-B_R46_t
MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
>N-N274_M
MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV

답변3

command:sed 's/^>[0-9]\{1,9\}\_/>/g' filename

산출

>CR-B_CR56_t
MTKIIKFVYFMTIFISPNHHCPVYNCTHPKQPWCKLVRLQLLFHGSLIGLCDCI
>R-B_R46_t
MVEVTKLVNVMLIFLTLSPLVYDCQAYECELPFKPDCLMVEYSPQFVALRCGCV
>N-N274_M
MVEVTKLVNVMLIFLTLFVYTDSDCQAYACELPFKPDCLMVEYAPQFFRLACGCV

관련 정보