我目前正在尝试编写一个循环遍历多个目录的脚本。主raw_data目录包含~150个子目录(subj001,subj002,...,subj00n),每个子目录都有几个子目录。
如何确保下面给出的脚本的输出将被发送回输入的特定子目录(例如subj0012),而不是当前目录(raw_data)?
#!/bin/bash
for dir in ~raw_data/*
do
tractor -d -r -b preproc RunStages:1
done
谢谢。
答案 0 :(得分:1)
要保存输出的目录名称位于$dir
,对吗?所以,只需通过重定向发送输出:
#!/bin/bash
for dir in ~raw_data/* ; do
tractor -d -r- b preproc RunStages:1 > $dir/output
done
但是,您应该确保您正在处理的内容确实是一个目录。
答案 1 :(得分:0)
您可以使用find
的输出来运行循环并将输出附加到所需的位置,如下所示:
while read d
do
echo $d >> ~raw_data/subj0012/output
done < <(find ~raw_data -type d)