У меня есть файл, который содержит различные даты и IP-адреса, которые мне нужны для ежедневной очистки. Формат файла:
# 2018-02-21 11:31:37 - user1 - This is a test.
1.1.1.1
# 2018-02-21 11:32:30 - user1 - This is also a test.
2.2.2.2
# 2018-03-06 21:12:44 - user2 - Another comment.
3.3.3.3
Ежедневно я хочу удалить любую строку комментария + IP-адрес под ней, который старше 30 дней. Для этого я могу легко сделать переменную bash "LAST_MONTH = date --date="-30 days" +%Y-%m-%d
"и я могу получить строки достаточно легко, выполнив" DELETE = $ (cat / var / www / html / ips | grep $ DATE -A1) ".
Отсюда я мог бы технически использовать sed для удаления таких строк, как "sed -i" s / $ DELETE / test / g "" $ FILE "", но есть хеш-теги и несколько строк, так что это на самом деле не работает для меня прямо сейчас.
Что бы вы посоветовали как лучший способ сделать это? Я не хочу создавать другой временный файл, если это вообще возможно. Я также был бы заинтересован в решениях bash и Python.
Благодарю.
источник