両方のフォルダを繰り返し、ファイルをPythonプログラムとして実行するbashスクリプトを作成しようとしています。 Pythonプログラムは2つの入力ファイル(各フォルダの対応するファイル)を受け入れ、1つのファイルを出力します。
次のように見えます。
folder 1/
Run_1.out
Run_2.out
Run_3.out
...
folder 2/
Sym_1.g0.out
Sym_2.g0.out
Sym_3.g0.out
...
Pythonプログラムは対応する入力(例:Run_1.out
とSym_1.g0.out
)を取得し、次のファイルを出力します。
NOCI.py Run_1.out Sym_1.g0.out outputfile
Pythonプログラムは、端末を介して一対のファイルを使用するとうまく機能しますが、360組のファイルがあるため、スクリプトを使用する必要があると思いました。これまでに2つのforループを書いてみましたが、うまくいかないようです。
#!/bin/bash
FILE1=*.out
FILE2=*.g0.out
for i in $FILE1
do
for j in $FILE2
do
NOCI.py $i $j ${i}_${outputfile}
done
done
ベストアンサー1
matchfolder 1/Run_1.out
などfolder 2/Sym_1.g0.out
360 組については次のようになります。
for n in {1..360}
do
NOCI.py "folder 1/Run_$n.out" "folder 2/Sym_$n.g0.out" outputfile
done
または、ペアリングされたファイルの順序が間違っている場合は、ファイルを選択してRun_N.out
そのSym_N.g0.out
ファイルをリンクすることもできます。
for r in "folder 1/Run_"*.out
do
n="${r#folder 1/Run_}"; n="${n%.out}"
s="folder 2/Sym_$n.out"
NOCI.py "$r" "$s" outputfile
done