Kum*_*mar 0 python shell-script bioinformatics
我有一个 fasta 文件,即 test.fasta、pas.fasta、cel.fasta 如下所示
test.fasta
>tile
ATGTC
>259
TGAT
pas.fasta
>ta
ATGCT
cel.fasta
>787
TGTAG
>yog
TGTAT
>In
NNTAG
Run Code Online (Sandbox Code Playgroud)
我需要打印文件名和 fasta 序列总数,如下所示,
test,2
pas,1
cel,3
Run Code Online (Sandbox Code Playgroud)
我使用了以下命令但未能达到我的目的
grep ">" test.fasta | wc -l && ls test.fasta
Run Code Online (Sandbox Code Playgroud)
请帮助我做同样的事情。
提前致谢。
这就是(to ount)-c
选项的用途:grep
c
$ grep -ce '^>' -- *.fasta
cel.fasta:3
pas.fasta:1
test.fasta:2
Run Code Online (Sandbox Code Playgroud)
请注意,如果只有一个匹配文件,则不会打印文件名。某些grep
实现可以选择-H
强制始终打印文件名:
$ grep -Hce '^>' -- *.fasta
cel.fasta:3
Run Code Online (Sandbox Code Playgroud)
要获得确切的预期输出,您只需替换.fasta:
为,
:
$ grep -Hce '^>' -- *.fasta | sed 's/\.fasta:/,/'
cel,3
pas,1
test,2
Run Code Online (Sandbox Code Playgroud)
(这里假设您的文件名不包含其他出现的情况,.fasta:
例如my.fasta:foo.fasta
; 当然,如果输出采用 CSV 格式,文件名中的换行符或,
或字符以及潜在的空白字符也会成为问题)"