フォルダを繰り返してPythonスクリプトを実行するBashコマンド

フォルダを繰り返してPythonスクリプトを実行するBashコマンド

Pythonスクリプトを実行するためにlinuxコマンドを実行しようとしています。

for f in /mnt/data/service/fmriprep/geht/sub-P*; do (python 2_correlation.py -i 
"$f" -o /mnt/data/service/corr_graph/correlation_P*.csv )

私のPythonスクリプトは、-iディレクトリの入力ファイルを-oa new .csvとして返します。各フォルダP *(P001、P002、P *)のCorrelation_P *をこのパス(/mnt/data/service/corr_graph/correlation_P *.csvに同じP001、P002、P *があります)として返したいのですが、中断されました。 。

ベストアンサー1

ループが繰り返されるたびに、「P」の後の数字を抽出してcsvファイル名に使用する必要があります。

in_dir=/mnt/data/service/fmriprep/geht
out_dir=/mnt/data/service/corr_graph

for dir in "$in_dir"/sub-P*; do 
    num=${dir##*P}
    python 2_correlation.py -i "$dir" -o "$out_dir/correlation_P${num}.csv"
done

おすすめ記事