이와 같은 빠른 파일이 여러 개 있습니다
>aaaaa.1_prot_CAA66754.1_10
MEKLLDAYLSSLRLNRRQVSEQTGLNYTTLQRASDKDALMISPRILWGIAMMVDKTPGQVLDELIELEMK
>bbbbb.1_prot_CAA66753.1_11
MMSKQDRINRRRRNIMKDAHRIAKLIVSNVGDYMVAMKLALKTVYAYKAMRKEVSSRGNAVEMHTLPLLD
GYARQQFEPEFVAGIPAWAIKKDFMSSSAQDILYFTIDTKVVKETEKAVEIEFATKNPKEHGYVDHHHTW
VAKSIMAA
제목을 이렇게 바꾸고 싶 sed
거나awk
>aaaaa.1_10
MEKLLDAYLSSLRLNRRQVSEQTGLNYTTLQRASDKDALMISPRILWGIAMMVDKTPGQVLDELIELEMK
>bbbbb.1_11
MMSKQDRINRRRRNIMKDAHRIAKLIVSNVGDYMVAMKLALKTVYAYKAMRKEVSSRGNAVEMHTLPLLD
GYARQQFEPEFVAGIPAWAIKKDFMSSSAQDILYFTIDTKVVKETEKAVEIEFATKNPKEHGYVDHHHTW
VAKSIMAA
sed
하지만 난 조금밖에 몰라요
sed 's/.\(.\)$/\1/'
각 줄의 두 번째에서 마지막 문자를 제거하고 "-"의 첫 번째 항목을 유지합니다.
답변1
awk
한 가지 방법 은 다음과 같습니다 .
$ awk '/^>/{sub(/\.[^.]+/,"")}1' file
>aaaaa.1_10
MEKLLDAYLSSLRLNRRQVSEQTGLNYTTLQRASDKDALMISPRILWGIAMMVDKTPGQVLDELIELEMK
>bbbbb.1_11
MMSKQDRINRRRRNIMKDAHRIAKLIVSNVGDYMVAMKLALKTVYAYKAMRKEVSSRGNAVEMHTLPLLD
GYARQQFEPEFVAGIPAWAIKKDFMSSSAQDILYFTIDTKVVKETEKAVEIEFATKNPKEHGYVDHHHTW
VAKSIMAA
>
이는 (헤더 라인) 로 시작하는 라인을 수정하는 것을 고려합니다 .
.
이 줄에서는 " 문자로 시작하고 구성되는 문자열" 패턴을 대체합니다 .아니요"(첫 번째 문자부터 시작하여 다음 문자를 제외한 .
일련의 문자를 의미함 ) 및 "nothing"을 포함 하여 제거합니다..
.
1
규칙 블록 에서 벗어난 것처럼 보이는 것은 awk
지금까지 수행된 모든 가능한 수정 사항을 포함하여 현재 행을 인쇄하도록 지시합니다.
답변2
$ sed 's/_.*_/_/' file
>aaaaa.1_10
MEKLLDAYLSSLRLNRRQVSEQTGLNYTTLQRASDKDALMISPRILWGIAMMVDKTPGQVLDELIELEMK
>bbbbb.1_11
MMSKQDRINRRRRNIMKDAHRIAKLIVSNVGDYMVAMKLALKTVYAYKAMRKEVSSRGNAVEMHTLPLLD
GYARQQFEPEFVAGIPAWAIKKDFMSSSAQDILYFTIDTKVVKETEKAVEIEFATKNPKEHGYVDHHHTW
VAKSIMAA
답변3
첫 번째 지점에서 두 번째 지점까지의 제목 부분을 삭제한다고 가정하면 다음 명령은 첫 번째 지점에서 두 번째 지점까지의 모든 항목을 삭제하지만 두 번째 지점은 삭제하지 않습니다.
sed 's/\.[^.]*//' file
또는 첫 번째 지점부터 두 번째 지점까지의 모든 항목을 삭제합니다.
sed 's/[^.]*\.//2' file
나는 당신이하려는 것이 마지막 지점에서 끝까지 비트를 캡처 한 다음 첫 번째 지점의 전체 문자열을 캡처 된 문자열로 바꾸는 다음이라고 믿습니다.
sed 's/\..*\(\..*\)/\1/' file
awk
각 줄을 점으로 구분된 필드 집합으로 사용 하고 처리하려면 각 줄에서 다음으로 시작하는 두 번째 필드를 제거하세요 >
.
awk -F . 'BEGIN { OFS=FS } /^>/ { $0 = $1 OFS $3 }; 1' file
답변4
awk -F "_" '/^>/{$0=$1"_"$NF}1' file
산출
>aaaaa.1_10
MEKLLDAYLSSLRLNRRQVSEQTGLNYTTLQRASDKDALMISPRILWGIAMMVDKTPGQVLDELIELEMK
>bbbbb.1_11
MMSKQDRINRRRRNIMKDAHRIAKLIVSNVGDYMVAMKLALKTVYAYKAMRKEVSSRGNAVEMHTLPLLD
GYARQQFEPEFVAGIPAWAIKKDFMSSSAQDILYFTIDTKVVKETEKAVEIEFATKNPKEHGYVDHHHTW
VAKSIMAA