sed 명령 및 줄 서식 지정

sed 명령 및 줄 서식 지정

다음 헤더를 회전해야 합니다.

'>>tr|G1PEZ0|G1PEZ0_MYOLU Uncharacterized protein (Fragment) OS=Myotis lucifugus GN=SNCG PE=4 SV=1

그게 다야:

'>G1PEZ0_MYOLU 

앞에 나오는 아포스트로피는 무시하세요.

답변1

이건 어때:

str='>>tr|G1PEZ0|G1PEZ0_MYOLU Uncharacterized protein (Fragment) OS=Myotis lucifugus GN=SNCG PE=4 SV=1'
echo "$str" | sed -e 's/ .*//' -e 's/.*|//' -e 's/^/>/'

3개의 별도 대체를 사용합니다. 즉, 줄의 첫 번째 공백부터 시작하여 모든 것을 제거하고, |줄의 마지막 공백까지 모든 것을 제거한 다음, >줄의 첫 번째 문자로 다시 추가합니다.

답변2

이는 다음을 사용하여 수행할 수도 있습니다 cut.

input=">>tr|G1PEZ0|G1PEZ0_MYOLU Uncharacterized protein (Fragment) OS=Myotis lucifugus GN=SNCG PE=4 SV=1"
echo "$input" | cut -d" " -f1 | cut -d"|" -f3 | sed "s/^/>/"

답변3

그리고 :trcut

tr ' |' '>>' <input |cut -d\> -f1,6

... tr모든 공간과 |파이프를 직각으로 변환한 다음 >결과 유한 도메인에서 cut첫 번째와 여섯 번째 도메인만 가져옵니다 .> -d-f

sed를 사용하세요...

sed -n 'y/ /\n/;s/.*|/>/;P' <input

또한 y///모든 공백을 \n줄줄이로 변환한 다음 s///파이프로 끝나는 가장 왼쪽 및 가장 긴 문자열을 |단일 문자열로 바꾼 >다음 패턴 공간의 첫 번째 줄줄 P만 인쇄합니다 .\n

관련 정보