我目前正在尝试编写一个循环遍历多个目录的脚本。主 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
谢谢你。
您要将输出保存到的目录的名称是 in $dir
,对吗?因此,只需通过重定向将输出发送到那里:
#!/bin/bash
for dir in ~raw_data/* ; do
tractor -d -r- b preproc RunStages:1 > $dir/output
done
不过,您应该确保您正在处理的内容确实是一个目录。
您可以使用 output offind
运行循环并将输出附加到所需位置,如下所示:
while read d
do
echo $d >> ~raw_data/subj0012/output
done < <(find ~raw_data -type d)