私のシェルスクリプトは次のとおりです。
#!/bin/bash
for file in *.fasta
do
signalp $file > $file.txt
done
作業フォルダには18.000個の.fastaファイルがあります。 signalpプログラムを通して各プログラムを実行したいと思います。フォルダ内のファイルが多すぎるようですが、コードを調整する方法がわかりません。助けが必要ですか?
ベストアンサー1
あなたはそれを使用することができますfind
:
find . -maxdepth 1 -type f -exec sh -c 'signalp "$1" >"$1".txt' _ {} \;
-maxdepth 1
現在ディレクトリ()にあるfind
ファイルのみを検索します。-type f
sh -c 'signalp "$1" >"$1".txt'
signalp
見つかったすべてのファイルに対してコマンドが実行され、出力は.txt
元のファイル名を追加した後に名前のファイルに保存されます。