Shell-Script
如何列印文件名和fasta序列總數?
我有一個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
我需要列印文件名和fasta序列的總數,如下所示,
test,2 pas,1 cel,3
我使用了以下命令,但未能達到我的目的
grep ">" test.fasta | wc -l && ls test.fasta
請幫我做同樣的事情。
提前致謝。
這就是(to ount)
-c
選項的用途:grep``c
$ grep -ce '^>' -- *.fasta cel.fasta:3 pas.fasta:1 test.fasta:2
請注意,如果只有一個匹配的文件,則不會列印文件名。一些
grep
實現可以-H
選擇強制始終列印文件名:$ grep -Hce '^>' -- *.fasta cel.fasta:3
要獲得確切的預期輸出,您只需替換
.fasta:
為,
:$ grep -Hce '^>' -- *.fasta | sed 's/\.fasta:/,/' cel,3 pas,1 test,2
(這裡假設您的文件名不包含其他出現,
.fasta:
例如my.fasta:foo.fasta
;當然,如果輸出是 CSV 格式,文件名中的換行符或,
或字元以及可能的空白字元也是一個問題)"