특정 끝이 있는 줄을 추출하고 이를 사용하여 다른 파일에서 추출합니다.

특정 끝이 있는 줄을 추출하고 이를 사용하여 다른 파일에서 추출합니다.

콘텐츠를 추출해야 하는 두 개의 파일이 있습니다. 첫 번째 파일에는 바코드 줄이 포함되어 있으며 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달라고 하세요 . grepFinal grep은 "가 없는 줄만 일치합니다.>".

관련 정보