通过每个子文件夹迭代一个函数
Iterate a function through every subfolder
我有一个函数可以获取一个文件,进行一些操作,然后创建一堆输出文件。
我有 100 个子文件夹名为:
d066, d067, d068.... d165, d166
他们每个人只有1个文件。我想做的是进入每个子文件夹,获取文件名,对其应用函数,离开子文件夹,进入下一个等等。
我写了这个脚本:
for i in {60..166}; do
if [ $i -lt 100 ];
then
var2=d0$i
else
var2=d$i
fi
cd $var2 || exit
f=$(find . -type f)
gd2e.py -rnxFile $f
cd ..
done
问题是我的代码离开了包含子文件夹的文件夹,然后停止了。有谁知道更好的方法吗?
假设函数可以使用目录作为输入参数的一部分(例如,gd2e.py -rnxFile ${i}/${f}
),一些简化当前代码的想法:
while read -r f
do
gd2e.py -rnxfFile "${f}"
done < <(find d{060..166} -type f)
如果 d{060..166}
目录可以包含您不想扫描的子目录,我们可以将 -maxdepth 1
添加到 find
:
while read -r f
do
gd2e.py -rnxfFile "${f}"
done < <(find d{060..166} -maxdepth 1 -type f)
我有一个函数可以获取一个文件,进行一些操作,然后创建一堆输出文件。 我有 100 个子文件夹名为:
d066, d067, d068.... d165, d166
他们每个人只有1个文件。我想做的是进入每个子文件夹,获取文件名,对其应用函数,离开子文件夹,进入下一个等等。
我写了这个脚本:
for i in {60..166}; do
if [ $i -lt 100 ];
then
var2=d0$i
else
var2=d$i
fi
cd $var2 || exit
f=$(find . -type f)
gd2e.py -rnxFile $f
cd ..
done
问题是我的代码离开了包含子文件夹的文件夹,然后停止了。有谁知道更好的方法吗?
假设函数可以使用目录作为输入参数的一部分(例如,gd2e.py -rnxFile ${i}/${f}
),一些简化当前代码的想法:
while read -r f
do
gd2e.py -rnxfFile "${f}"
done < <(find d{060..166} -type f)
如果 d{060..166}
目录可以包含您不想扫描的子目录,我们可以将 -maxdepth 1
添加到 find
:
while read -r f
do
gd2e.py -rnxfFile "${f}"
done < <(find d{060..166} -maxdepth 1 -type f)