我正在尝试运行 linux 命令来运行 python 脚本:
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
答案2
非常感谢@glenn jackman,你提高了我的技能。所以对我有用的命令是:
for dir in /mnt/data/service/fmriprep/geht/sub-P*; do if [ -d "$dir" ]; then
num=${dir##*P} && python 2_correlation.py -i "$dir" -o
"/mnt/data/service/corr_graph/correlation_P${num}.csv";fi done