forループを使用して一意の出力ファイルを持つ複数のファイルに対してコマンドを実行するにはどうすればよいですか? [閉鎖]

forループを使用して一意の出力ファイルを持つ複数のファイルに対してコマンドを実行するにはどうすればよいですか? [閉鎖]

ディレクトリ内の1000個のファイルに対して次の構文を使用してコマンドを実行し、各反復の出力を一意のファイルに保存する必要があります。

command universalinputfile variableinputfile > outputfile

例えば

MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_1rndb > motifoutput/output_1

MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_2rndb > motifoutput/output_2

私は成功しなかったので、以下のforループを試してみました。

for i in {1..1000}
do
        MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_$irndb > motifoutput/output_$i
done

また、「for file in /dir」形式のforループを試してみましたが、成功しませんでした。

どうすればいいですか?

答え1

$irndbという単一の変数として読み込まれますirndb。あなたはできますi変数名として使用するように解析を変更する${i}rndb:

for i in {1..1000}
do
        MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_${i}rndb > motifoutput/output_$i
done

これはforそれ自体は大丈夫です。支柱の拡張 {1..1000}そのため、変更する必要はありません。

関連情報