Arrays (pdksh)在n个文件中循环并将其日期存储在数组中

Arrays (pdksh)在n个文件中循环并将其日期存储在数组中,arrays,shell,scripting,pdksh,Arrays,Shell,Scripting,Pdksh,使用pdksh stat()命令在系统上不可用 我需要遍历找到的文件数量,并将它们的日期存储在一个数组中$COMMAND存储在$location中找到的文件数,如下所示 有人能帮我吗 COMMAND=`find $location -type f | wc -l` CMD_getDate=$(find $location -type f | xargs ls -lrt | awk '{print $6} {print $7}') 首先,您不需要执行wc。数组的大小将告诉您有多少个。以下是构建日

使用pdksh

stat()
命令在系统上不可用

我需要遍历找到的文件数量,并将它们的日期存储在一个数组中
$COMMAND
存储在
$location
中找到的文件数,如下所示

有人能帮我吗

COMMAND=`find $location -type f | wc -l`
CMD_getDate=$(find $location -type f | xargs ls -lrt | awk '{print $6} {print $7}')

首先,您不需要执行
wc
。数组的大小将告诉您有多少个。以下是构建日期和名称数组的简单方法(专为pdksh设计;在AT&T ksh或bash中有更好的方法):

以下是检查结果的一种方法:

print "Found ${#files[@]} files:"
let i=0
while (( i < ${#files[@]} )); do
  print "The file '${files[i]}' was modified on ${dates[i]}."
  let i+=1
done
如前所述,上面的代码将为上述目录产生此结果,该目录具有
位置
=

Found 2 files:
The file './a' was modified on Feb  3  2014.
The file './b' was modified on Feb  3 00:00.

如果您指出实际的最终目标是什么,这会有所帮助。

好的,您希望最终的数组是什么样的?只是一个日期数组,无法确定哪个文件名与哪个日期匹配?还有什么类型的日期-字符串,如2015年6月2日星期二08:58:06?时间值,如
1433249886
?ISO 8601,如
2015-06-02T12:58:06Z
?我假设您想要mtime(与atime或ctime相反)?如果我有2个数组,那么我就能够知道。这是因为他们会事先分类不?例如,我只需要保存6月2日的日期。。然后我对文件名、时间等做了同样的处理。我认为我的系统不允许使用typeset-a,因为它说“0403-010指定的标志对此命令无效。”。。。同样对于数组,我可以看到日期和文件名,但正如您所说,它们在循环退出时已经消失了。好的,您使用的是pdksh,而不是AT&T ksh。检查我的编辑。谢谢你的帮助,但是当输入集合-A等的代码块时。。我得到了以下结果-[1]+完成了查找“$location”-键入f-ls |&这是循环结束时所期望的。协进程作业已终止。
$ ls -l
total 0
-rw-rw-r--+ 1 mjreed  staff  0 Feb  3  2014 a
-rw-rw-r--+ 1 mjreed  staff  0 Feb  3 04:05 b
Found 2 files:
The file './a' was modified on Feb  3  2014.
The file './b' was modified on Feb  3 00:00.