May 29, 2001
Hej hej
Är det någon som vet om det går att använda grep för att söka efter datum, på detta sätt:
jag har en log fil med flera olika datum i, jag vill söka efter datum som är 3 månader eller mer från dagens datum och detta med hjälp av grep.
Datumen är i denna form: 050320
Någon grep guru som kan ge lite tips? Ska köra lite RTFM dvs man grep, men man e ju lite lat av sig 🙂
January 15, 2004
grep har ingen tidsuppfattninging så jag är tveksam till om det det går på ett smidigt sätt.
Vad man kan göra är att söka på alla filer skapade från 000101 till 041231 genom att köra
grep --regexp=0[0-4][0-1][0-9][0-3][0-9] logfile
Den hittar dessvärre en del saker som inte är datum såsom t.ex. 001939 men det kanske inte är så farligt.
Det går att förfina uttrycket men jag var tydligen inte komis med greps reguljära uttryck idag.
Har du tillgång till perl?
use Time::Local;
my $time1 = time;
while(<>)
{
if(m/(dd)(0[1-9]|11|12)([0-3]d)/)
{
my $y = $1;
my $m = $2-1;
my $d = $3;
$y += 100 if($y < 10);
my $time = timelocal(0,0,0,$d,$m,$y);
print if($time1-$time > 8000000);
}
}
May 29, 2001
Bra tips, tack!
Vi får bara använda oss av bash, men det borde gå att lösa om grep kan använda sig av variabler som inparametrar. Du vet inte om det går att lösa problemet i mitt andra inlägg? lägger till poster i logfilen genom att köra echo på variabler och sen en > till logfilen, men då smyger det med EOF och sen när vi ska läsa tillbaka data med read while så får vi inte med alla poster...ja vad ska man säga..smått irriterande hehe
Kan man köra något annat än echo för att få data från variabler in i logfilen?
1 Guest(s)