라인에 특정 패턴이 포함된 경우 인쇄하고 해당 패턴이 포함되지 않은 경우 인쇄하지 않는 방법

라인에 특정 패턴이 포함된 경우 인쇄하고 해당 패턴이 포함되지 않은 경우 인쇄하지 않는 방법
">16RI1_0 M01230:42:000000000-AWMRD:1:1101:15012:1778 1:N:0:0 
TATCCGGATTTACTGGGTGTAAAGGGAGCGTAGGCGGCCATGCAAGTCAGAAGTGAAAAC
">16RA2_1 M01230:42:000000000-AWMRD:1:1101:15923:1780 1:N:0:0 
TTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTCTTAAGTCTGATGTGAAAGC
">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA
">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0 
GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC

안녕하세요. 이러한 유형의 정보가 포함된 파일이 있습니다. ">" 기호로 시작하는 모든 줄과 다음 줄을 인쇄하고 싶지만 ">" 기호로 시작하는 줄에는 문자 V가 포함되어야 합니다. 도와주세요.

답변1

">" 기호로 시작하는 모든 줄과 다음 줄을 인쇄하고 싶지만 ">" 기호로 시작하는 줄에는 문자 V가 포함되어야 한다는 조건이 있습니다.

이것은 grep작동하는 것 같습니다:

grep -A 1 '^">.*V'

예:

grep -A 1 '^">.*V' file 
">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA
">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0 
GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC

답변2

GNU sed(Linux 시스템의 표준)를 사용하면 다음과 같이 fasta 파일에서 헤더 라인(포함 V)과 시퀀스의 첫 번째 라인을 얻을 수 있습니다.

sed -n '/^>.*V/,+1p' sequence.fa

이는 fasta 파일의 형식이 올바른 것으로 가정합니다.

-n기본 출력을 끄고 /^>.*V/,+1pa가 있는 헤더 행 V과 그 바로 다음에 오는 행을 인쇄합니다.

답변3

당신은 말한다:

">" 기호로 시작하는 모든 줄과 다음 줄을 인쇄하고 싶지만 ">" 기호로 시작하는 줄에는 문자 V가 포함되어야 한다는 조건이 있습니다.

이것은 awk에게 좋은 일입니다.

$ awk '/^">.*V/{print $0;getline line; print line}' input.txt                                                            
">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 
TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA
">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0 
GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC

관련 정보