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