我是 bash 的新手,需要帮助来选择具有特定日期格式和 .zip 扩展名的文件。我想使用正则表达式来选择正确的文件。以下是我希望选择的文件格式
2017-Apr-13--2315.zip
所以基本上是年份、月份(3 个字母)、日期和备份发生的时间,即 .zip 扩展名之前的 4 位数字。 我正在努力在 Regex101 上做对
最终,我想选择正确的文件并删除所有备份,但保留最新的 6 个备份。我正在使用的命令在下面
find . -maxdepth 1 -type f | tac | tail -n +7 | xargs rm -rf
但目录中还有其他文件不是备份。所以我需要选择正确的文件,其正则表达式与我上面提供的文件格式匹配。
最佳答案
以下 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 中包含日期格式和 .zip 扩展名的备份文件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52259281/