.fasta 파일(빅 데이터)을 구문 분석해야 하거나 특정 구조의 .txt 파일을 생각할 수도 있습니다. 이 목표를 위해 나는 리눅스를 사용하고 싶습니다. 파일을 "한 줄씩" 읽고 싶습니다. 줄이란 모든 줄을 의미하는 것이 아니라 특정 패턴에 따라 텍스트에 반복적으로 나타나는 특정 줄을 의미합니다. 눈길을 끄는 패턴은 로고 입니다 >
. 내가 읽고 싶은 줄은 해당 기호가 포함된 줄 사이의 줄입니다. 불행하게도 필수 행은 두 개의 행을 차지합니다. 나는 리눅스에 대한 경험이 없습니다. 그래서 도움이 필요해요. 최종 목표는 필요한 줄을 새 파일로 리디렉션하거나 그냥 읽는 것입니다. 코드 제안을 보내주셔서 진심으로 감사드립니다. 텍스트의 몇 줄은 다음과 같습니다.
>ERR194147.15240306 HSQ1004:134:C0D8DACXX:1:1204:4727:27246/1
AGCCATTTTCCAGATGAGAAAGTCAAGGTTTGGAGAGAGATTCTGTGCCTTTGAGCAGGCTTGGGGGTCTGTAAGAAGCA
GGGCCACAGTTCAAACCTAG
>ERR194147.15950974 HSQ1004:134:C0D8DACXX:2:1307:21234:48802/1
ATGCATACTTCATGCACCCCAGCCCCCGTGGGCAGCTATTGGGTTTGCTATCTAATCTCTTTCTCCACCAGCTACCCTTC
TTTATCAACTTATATGTTTA
답변1
이 도구를 사용하여 패턴과 일치하는 라인을 잡을 수 있습니다 grep
. man grep
자세한 내용은 다음을 참조하세요.
grep -v '^>' source_file > output_file
정규식(RE)을 사용하여 >
줄의 시작 부분( )을 일치시킵니다. ^
이 -v
옵션은 일치 항목을 반전시켜 일치하지 않는 줄만 출력합니다. 마지막으로 > output_file
출력을 지정된 파일로 보내기 위한 표준 쉘 구성입니다.