代码之家  ›  专栏  ›  技术社区  ›  Hakeem Baba

在bash中包含日期格式和.zip扩展名的备份文件的regex

  •  0
  • Hakeem Baba  · 技术社区  · 6 年前

    我刚接触bash,需要帮助选择具有特定日期格式和.zip扩展名的文件。我想使用regex来选择正确的文件。下面是我要选择的文件的格式

    2017-Apr-13--2315.zip
    

    所以基本上是年、月、日和备份发生的时间,这是.zip扩展之前的4个数字。 我正努力想把它弄好 Regex101

    最后,我希望选择正确的文件并删除所有备份,但保留最新的6个备份。我使用的命令如下

    find . -maxdepth 1 -type f | tac | tail -n +7 | xargs rm -rf
    

    但是目录中还有其他文件不是备份文件。所以我需要选择与上面提供的文件格式相匹配的regex的正确文件。

    1 回复  |  直到 6 年前
        1
  •  2
  •   anubhava    6 年前

    跟随 regex 可能与 find :

    find . -regextype egrep -iregex '.*/[0-9]{4}-[a-z]{3}-[0-9]{2}--[0-9]{4}\.zip$'
    

    要删除匹配文件,可以使用:

    find . -regextype egrep -iregex '.*/[0-9]{4}-[a-z]{3}-[0-9]{2}--[0-9]{4}\.zip$' -delete