【问题标题】:KornShell script to get the most recent file for a given day [closed]用于获取给定日期的最新文件的 KornShell 脚本 [关闭]
【发布时间】:2009-08-14 04:25:50
【问题描述】:

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

【问题讨论】:

    标签: file shell unix ksh


    【解决方案1】:

    类似的东西:

    newest=""
    for f in $filelist ; do
      if [ "$f" -nt "$newest" ] ; then
        newest="$f"
      fi
    done
    

    【讨论】:

    • 非常感谢!这对我有用。但我仍在寻找一种方法来比较列表中的两个文件,检查它们是否是在同一天创建的。有什么想法吗?
    【解决方案2】:

    您可以使用以下脚本:

    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 替换为您想要的日期。不要忘记空格后面的“+”。

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多