Use a substituição do processo <()
:
fgrep -A 1 -f <(cut -d " " -f 1 Cell_cycle.txt) filename.fasta
Eu posso extrair lista de padrões usando o seguinte comando,
fgrep -A 1 -f patternlist.txt filename.fasta
mas, existe uma maneira que eu possa extrair sem criar outro arquivo (patternlist.txt neste caso) da saída de outro comando?
Como:
cut -d " " Cell_cycle.txt -f 1 | grep ...???... filename.fasta
EDITAR:
O Cell_cycle.txt tem esta aparência:
$ cat Cell_cycle_Kegg_pathway
ctg2977_3.g207.t1 K06626
P05_Ctg654_12.g311.t2 K03094
P06_Ctg710_7.g346.t1 K05868
Eu quero pegar a primeira coluna e extrair as seqüências do arquivo fasta.
EDIT 2:
Eu tenho uma lista de seqüências em um UniqueSeq_28Dec2014.fasta
>ctg1474_1.g69.t1 (first line)
atgaaatgttggtgcagcgccctggcacttctcc...... (second line)
>ctg1475_1.g70.t1 (third line)
atgaaattgcagcgccctggcacttctcctgcag...... (fourth line)
Eu quero imprimir as duas primeiras seqüências (das linhas 1 a 4). No entanto, eu não quero usar head -4 UniqueSeq_28Dec2014.fasta
, que também pode dar a minha saída, mas eu quero usando a substituição do processo.
Eu tentei o seguinte comando, mas parece que não funciona. Acabei de ver 4 linhas vazias.
grep -A 1 -Ff <(grep '>' UniqueSeq_28Dec2014.fasta |head -4) UniqueSeq_28Dec2014.fasta
Também isso (para um pouco mais curto e mais legível):
grep -Ff <(awk '{print $1}' Cell_cycle.txt) filename.fasta