Shell
提取作為另一個命令輸出的模式列表
我可以使用以下命令提取模式列表,
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
which 也可以提供我的輸出,但我希望它使用程序替換。我嘗試了以下命令,但似乎不起作用。我只看到 4 個空行。
grep -A 1 -Ff <(grep '>' UniqueSeq_28Dec2014.fasta |head -4) UniqueSeq_28Dec2014.fasta
使用程序替換
<()
:fgrep -A 1 -f <(cut -d " " -f 1 Cell_cycle.txt) filename.fasta
還有這個(為了稍微更短和更具可讀性):
grep -Ff <(awk '{print $1}' Cell_cycle.txt) filename.fasta