python - 使用 grep 或 awk 仅提取 4 天的行
问题描述
您好,我有一个包含以下条目的文本文件
MySql-DataBase-2020-09-22_120712.zip
MySql-DataBase-2020-09-22_120947.zip
MySql-DataBase-2020-09-23_153159.zip
MySql-DataBase-2020-09-23_153434.zip
MySql-DataBase-2020-09-24_053634.zip
MySql-DataBase-2020-09-24_053910.zip
MySql-DataBase-2020-09-25_053255.zip
MySql-DataBase-2020-09-25_053530.zip
MySql-DataBase-2020-09-26_055307.zip
MySql-DataBase-2020-09-26_055542.zip
MySql-DataBase-2020-09-27_063328.zip
MySql-DataBase-2020-09-27_063603.zi
MySql-DataBase-2020-10-01_210715.zip
MySql-DataBase-2020-10-01_210950.zip
MySql-DataBase-2020-10-02_033726.zip
MySql-DataBase-2020-10-02_034001.zip
MySql-DataBase-2020-10-03_064238.zip
MySql-DataBase-2020-10-03_064513.zip
MySql-DataBase-2020-10-04_043117.zip
MySql-DataBase-2020-10-04_043353.zip
MySql-DataBase-2020-10-05_050735.zip
MySql-DataBase-2020-10-05_051010.zip
MySql-DataBase-2020-10-06_073457.zip
MySql-DataBase-2020-10-06_073733.zip
MySql-DataBase-2020-10-07_033928.zip
MySql-DataBase-2020-10-07_034204.zip
MySql-DataBase-2020-10-08_014822.zip
MySql-DataBase-2020-10-08_015059.zip
MySql-DataBase-2020-10-09_033301.zip
MySql-DataBase-2020-10-09_033537.zip
我只想选择 [今天的日期 -4 天] 和 [到任何旧日期] 之间的文件
我试图搜索这样的东西,但找不到任何东西:(
任何人都可以帮助我使用任何 grep、awk 命令或任何可以做到这一点的小型 php 或 python 脚本吗?
解决方案
关于您的条目的一个非常好的做法的有趣之处在于有一个命名约定,最好的是您使用YYYY-MM-DD
日期格式。这种格式很有趣,因为您只需比较字符串值即可获得更新的字符串。例如,如果您有'2020-10-25'
,则它大于'2020-10-20'
并且在时间上也较新。因此,您可以使用这样的简单字典比较:
import datetime
from datetime import timedelta
#the file in which are the entries
filename = 'your_file'
#creating a start date by takin current date and subtracting 4 days
startDate = (datetime.datetime.today() + timedelta(days=-4)).strftime('%Y-%m-%d')
endDate = '2020-10-08' #whatever date you want
startFile = 'MySql-DataBase-' + startDate
endFile = 'MySql-DataBase-' + endDate
#open the file and get all entries
with open(filename) as f:
content = f.readlines()
myFiles = [x.strip() for x in content]
# Adding all the file that name is between startFile and endFile
res = [file for file in myFiles if startFile < file < endFile]
print(res)
推荐阅读
- google-apps-script - 使用谷歌脚本创建带有关键字的时间戳
- linux - Linux读取外盘数据,无法挂载
- node.js - 使用相同的 package.json 文件定义多运行配置
- cordova - Cordova 支持 finally 方法吗?
- php - PHP登录页面为空白而不是回显结果
- mysql - 使用 MySQL 配置 ejabberd 时出错
- php - 连接已重置 - 加载样式表
- python-3.x - 从python中的列表创建可能的数字
- python - 试图从新的顶部反转帖子,但我在 Flask 中不断收到错误
- javascript - Gulp webpack 只加载 jquery 一次