예를 들어 ">" 기호 뒤의 숫자와 "_"만 제거하고 싶습니다.
>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'
이건 s
sed야바꾸다명령을 실행하면 왼쪽 문자열을 검색하여 오른쪽 문자열로 바꿉니다. 다른 것으로 바꿀 필요는 없으며, 대신 >
유지하려는 문자로 바꿀 수 있습니다.
^
개행 문자의 시작 부분에서만 일치가 시작되도록 지정하는 데 사용됩니다.
여러 숫자를 일치시키는 데 에도 *
사용됩니다.
답변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