다른 명령으로 출력된 패턴 목록 추출

다른 명령으로 출력된 패턴 목록 추출

다음 명령을 사용하여 패턴 목록을 추출할 수 있습니다.

fgrep -A 1 -f patternlist.txt filename.fasta

그러나 다른 파일(이 경우에는 Patternlist.txt)을 생성하지 않고 다른 명령의 출력에서 ​​추출할 수 있는 방법이 있습니까?

예를 들어:

cut -d "      "  Cell_cycle.txt -f 1 | grep ...???... filename.fasta

편집하다:

Cell_cycle.txt는 다음과 같습니다.

$ cat Cell_cycle_Kegg_pathway
ctg2977_3.g207.t1   K06626
P05_Ctg654_12.g311.t2   K03094
P06_Ctg710_7.g346.t1    K05868

첫 번째 열을 가져와 fasta 파일에서 이러한 시퀀스를 추출하고 싶습니다.

편집 2:

시퀀스 목록이 있습니다.UniqueSeq_28Dec2014.fasta

>ctg1474_1.g69.t1 (first line)
atgaaatgttggtgcagcgccctggcacttctcc...... (second line)
>ctg1475_1.g70.t1 (third line)
atgaaattgcagcgccctggcacttctcctgcag...... (fourth line)

처음 두 시퀀스(라인 1부터 라인 4까지)를 인쇄하고 싶습니다. 하지만 이를 사용하여 head -4 UniqueSeq_28Dec2014.fasta출력을 제공하는 것이 아니라 프로세스 대체를 사용하고 싶습니다.

다음 명령을 시도했지만 작동하지 않는 것 같습니다. 4개의 빈 줄만 보입니다.

grep -A 1 -Ff <(grep '>' UniqueSeq_28Dec2014.fasta |head -4) UniqueSeq_28Dec2014.fasta

답변1

프로세스 대체 사용 <():

fgrep -A 1 -f <(cut -d " " -f 1 Cell_cycle.txt)  filename.fasta

답변2

그리고 이것은 (약간 더 짧고 더 읽기 쉽게):

grep -Ff <(awk '{print $1}' Cell_cycle.txt) filename.fasta

관련 정보