以下のように、test.fasta、pas.fasta、cel.fastaという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
私もそうするのを手伝ってください。
よろしくお願いします。
ベストアンサー1
(to ununt)-c
オプションの用途は次のとおりです。grep
c
$ grep -ce '^>' -- *.fasta
cel.fasta:3
pas.fasta:1
test.fasta:2
一致するファイルが1つしかない場合、ファイル名は印刷されません。一部の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形式の場合、ファイル名の改行または文字、および,
潜在的な空白文字も問題になる可能性があります。)"