【问题标题】:Regex for backup files that contains date format and .zip extension in bashbash 中包含日期格式和 .zip 扩展名的备份文件的正则表达式
【发布时间】:2019-02-14 23:25:41
【问题描述】:

我是 bash 新手,需要帮助选择具有特定日期格式和 .zip 扩展名的文件。我想使用正则表达式来选择正确的文件。以下是我希望选择的文件格式

2017-Apr-13--2315.zip

所以基本上是年、月(三个字母)、日和备份发生的时间,即 .zip 扩展名之前的 4 位数字。 我正在努力在Regex101 上做对

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

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

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

【问题讨论】:

  • 你在使用find命令吗?
  • 那么,您使用的正则表达式是什么?什么不起作用?

标签: regex linux bash file git-bash


【解决方案1】:

关注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

【讨论】:

    猜你喜欢
    • 2018-04-24
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2012-02-13
    • 2010-12-21
    • 1970-01-01
    • 2013-09-02
    • 2013-03-18
    相关资源
    最近更新 更多