0

我有过去 7 天的文件列表。从这个列表中,如果某一天有多个文件,我需要使用 KornShell (ksh) 脚本获取当天的最新文件。

4

2 回答 2

1

类似于以下内容:

newest=""
for f in $filelist ; do
  if [ "$f" -nt "$newest" ] ; then
    newest="$f"
  fi
done
于 2009-08-14T05:00:48.417 回答
0

您可以使用以下脚本:

ls -lt | egrep '^([^ ]+ +){5}Feb +3 +2009' | 头-n 1

但是如果你在 solaris 上,/bin/egrep 和 /usr/bin/egrep 不支持 { } 字符。我猜这种行为不符合标准。无论如何,在 Solaris 中,您可以使用:

ls -lt | /usr/xpg4/bin/egrep '^([^ ]+ +){5}Feb +3 +2009' | 头-n 1 | 头-n 1

或者

ls -lt | tr -s ' ' | egrep '^[^ ]+ [^ ]+ [^ ]+ [^ ]+ [^ ]+ 2009 年 2 月 3 日' | 头-n 1

您也可以使用 ls 和 sed。但在 Solaris 中,我认为 sed 不支持扩展的正则表达式。

当然,将 Feb +3 +2009 替换为您想要的日期。不要忘记空格后面的“+”。

于 2009-08-14T05:05:12.527 回答