콘텐츠를 추출해야 하는 두 개의 파일이 있습니다. 첫 번째 파일에는 바코드 줄이 포함되어 있으며 OTU 번호로 끝납니다. 특정 OTU 번호가 있는 행을 추출해야 합니다.
줄을 추출하는 파일이 있으면 다음 파일에서 첫 번째 파일의 바코드와 일치하는 줄을 추출해야 합니다.
예를 들어, 이 파일에서 OTU_1을 포함하는 모든 라인을 추출하고 싶다고 가정해 보겠습니다.
OTU 1을 포함하는 각 행에는 고유한 바코드가 있습니다. 이 예에서는 5가 표시됩니다.
907.2::M02542:207:000000000-AWDAH:1:1115:18838:201661:N:0:GTGAAA 905.2::M02542:207:000000000-AWDAH:1:1101:24324:103291:N:0:GTGAAA 1205.2::M02542:207:000000000-AWDAH:1:2115:22195:238121:N:0:GTGAAA 906.2::M02542:207:000000000-AWDAH:1:1115:24086:126561:N:0:GTGAAA 910.2::M02542:207:000000000-AWDAH:1:1112:26236:215801:N:0:GTGAAA
다음 파일에서 시퀀스를 추출하려면 다음 바코드를 사용해야 합니다.
보시다시피 바코드는 > 이후에 시작하며 > 사이의 모든 정보(예: 내 시퀀스)가 필요합니다.
스프레드시트 유형 소프트웨어를 사용하고 OTU #으로 정렬하는 확실한 방법을 시도했지만 파일이 너무 큽니다(~수십억 줄 길이).
답변1
그리고암소 비슷한 일종의 영양 grep
, 다음과 같이 작동해야 합니다.
grep -o '\S\+\s\+OTU_1$' Fasta.readmap.uc | \
grep -o '^\S\+' | \
grep -f - -A 1 092016MABits-pr.fasta | \
grep -v '^>'
일치하는 텍스트 만 -o
출력됩니다 . 파이프에서 입력된 패턴을 검색하라고 grep
알려줍니다 -f -
.grep
표준 입력. 게임이 끝난 후 이 대사를 보여 -A 1
달라고 하세요 . grep
Final grep
은 "가 없는 줄만 일치합니다.>".