使用KSH88中的长列表

时间:2013-06-06 20:21:51

标签: ksh

我正在使用一个目录,其中包含标记为要处理和删除的文件的名称。我需要做的是获取所有文件的名称并将它们放入一个数组中,然后通过数组并完成工作。问题是,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,所以我不确定是否可以将结果集用作数组。任何帮助都会很棒,谢谢。

1 个答案:

答案 0 :(得分:1)

难道你不能在没有这么复杂的方法的情况下获得文件数量吗? e.g。

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

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

e.g。

cd $dirname;
for filename in ABC*DEF??.gz; do
    # some action here...
done