Ho un file che contiene varie date e IP che ho bisogno di fare una pulizia quotidiana di. Il formato del file è:
# 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
Ogni giorno voglio rimuovere qualsiasi riga di commento + l'IP sotto di esso che è più vecchio di 30 giorni. Per questo, posso facilmente fare una variabile bash di "LAST_MONTH = date --date="-30 days" +%Y-%m-%d
"e posso ottenere le linee abbastanza facilmente facendo" DELETE = $ (cat / var / www / html / ips | grep $ DATE -A1) ".
Da qui, potrei usare tecnicamente sed per cancellare le righe come "sed -i" s / $ DELETE / test / g "" $ FILE "" ma ci sono i tag hash e le righe multiple coinvolte, quindi non funziona davvero per me proprio adesso.
Cosa consiglieresti come il modo migliore per farlo? Non voglio creare un altro file temporaneo se possibile. Sarei interessato anche alle soluzioni bash e Python.
Grazie.