bash 中包含日期格式和 .zip 扩展名的备份文件的正则表达式
Regex for backup files that contains date format and .zip extension in bash
我是 bash 的新手,需要帮助 select 处理具有特定日期格式和 .zip 扩展名的文件。我想使用正则表达式 select 正确的文件。以下是我希望 select
的文件格式
2017-Apr-13--2315.zip
所以基本上是年份、月份(3 个字母)、日期和备份发生的时间,即 .zip 扩展名之前的 4 位数字。
我正在努力在 Regex101
上做对
最后,我想 select 正确的文件并删除所有备份,但保留最新的 6 个备份。我使用的命令在
下面
find . -maxdepth 1 -type f | tac | tail -n +7 | xargs rm -rf
但是目录中还有其他文件不是备份文件。所以我需要 select 正确的文件,其正则表达式与我上面提供的文件格式匹配。
以下 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
我是 bash 的新手,需要帮助 select 处理具有特定日期格式和 .zip 扩展名的文件。我想使用正则表达式 select 正确的文件。以下是我希望 select
的文件格式2017-Apr-13--2315.zip
所以基本上是年份、月份(3 个字母)、日期和备份发生的时间,即 .zip 扩展名之前的 4 位数字。 我正在努力在 Regex101
上做对最后,我想 select 正确的文件并删除所有备份,但保留最新的 6 个备份。我使用的命令在
下面find . -maxdepth 1 -type f | tac | tail -n +7 | xargs rm -rf
但是目录中还有其他文件不是备份文件。所以我需要 select 正确的文件,其正则表达式与我上面提供的文件格式匹配。
以下 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