繁体   English   中英

来自bash脚本的输出循环遍历多个目录

[英]Output from a bash script looping through multiple directories

我目前正在尝试编写一个脚本,该脚本将遍历多个目录。 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 

谢谢。

您要将输出保存到的目录的名称在$dir ,对吗? 因此,只需通过重定向将输出发送到那里即可:

#!/bin/bash
for dir in ~raw_data/* ; do
    tractor -d -r- b preproc RunStages:1 > $dir/output
done

但是,您应该确保要处理的实际上是一个目录。

您可以使用find输出运行循环并将输出附加到所需的位置,如下所示:

while read d
do
    echo $d >> ~raw_data/subj0012/output
done < <(find ~raw_data -type d)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM