0

我正在使用一个目录,该目录具有标记为要处理和删除的文件名。我需要做的是获取所有文件的名称并将它们放入一个数组中,然后遍历该数组并完成工作。问题是,KSH88 只能处理最大为 1024 的数组,并且目录中可以有更多的文件名!

我只需要能够获取目录中的当前文件名总数,因为循环和做其他所有事情都很容易,脚本的当前部分是:

   #This is getting the result set and attempting to get the total file names as initalNumber.
   integer initialNumber=${#`find $source -path "$source/*" -prune -type f -name "$regex" | sed 's!.*/!!'`[@]}

这给了我一个“错误的替换错误”。这是我第一次使用 KSH88,所以我不确定是否可以将结果集用作数组。任何帮助都会很棒,谢谢。

4

1 回答 1

1

不用这么复杂的方法就不能简单地得到文件的数量吗?例如

integer initialNumber=$(ls -l | grep -v ^d | wc -l)

您是否将阵列用于其他目的?有更好的方法来遍历文件列表。要遍历当前目录中的文件列表,更直接地执行此操作似乎要容易得多。

例如

cd $dirname;
for filename in ABC*DEF??.gz; do
    # some action here...
done
于 2013-06-20T13:28:03.703 回答