#!/bin/bashAGE=$2CUR=$(date +%s)MAGE=$(($CUR-(AGE*24*3600)))cat $1 | while read line; do LTIME=$( date --date "$(echo $line | cut -d' ' -f1-6)" +%s ) if [ $LTIME -ge $MAGE ]; then echo -e "$line" fidone
Nebo třeba...Kód: [Vybrat]#!/bin/bashAGE=$2CUR=$(date +%s)MAGE=$(($CUR-(AGE*24*3600)))cat $1 | while read line; do LTIME=$( date --date "$(echo $line | cut -d' ' -f1-6)" +%s ) if [ $LTIME -ge $MAGE ]; then echo -e "$line" fidonepoužitískript.sh nazev_logu pocet_dniskript.sh log.log 10
#!/bin/bashfor d in `seq 7 -1 0`do pttn=$(date -d "$d days ago" +'%a[ ]*%b[ ]*%e[ 0-9:]*%Z[ ]*%Y') grep "$pttn" logdone
Citace: Tuxik 02. 08. 2017, 12:35:38Nebo třeba...Kód: [Vybrat]#!/bin/bashAGE=$2CUR=$(date +%s)MAGE=$(($CUR-(AGE*24*3600)))cat $1 | while read line; do LTIME=$( date --date "$(echo $line | cut -d' ' -f1-6)" +%s ) if [ $LTIME -ge $MAGE ]; then echo -e "$line" fidonepoužitískript.sh nazev_logu pocet_dniskript.sh log.log 10tohle bude zoufale pomalé, pro větší logy nepoužitelné.
Můžeš zkusit parsovámí v Pythonu:https://stackoverflow.com/questions/466345/converting-string-into-datetimehttps://stackoverflow.com/questions/1345827/how-do-i-find-the-time-difference-between-two-datetime-objects-in-python
To jo, na velký logy blbý, ale obecně dobře upravitelný
ono je toblbé už na docela malé logy. Kdybyste tu smyčku přepsal do nějakého skriptovacího jazyka, nebude to delší ani hůře upravitelné a zrychlí se to mnohanásobně.
#!/usr/bin/python3import sysimport timeimport datetimefromtime=time.time()-(int(sys.argv[2])*24*3600)with open(sys.argv[1], 'rU') as f: for line in f: ldate = (line[0:29]) secs=datetime.datetime.strptime(ldate, "%a %b %d %H:%M:%S %Z %Y").timestamp() if secs > fromtime: print(line,end="")