Ubuntu Linux
  • MerlinW
    #10373
    Pedig van még egyszerűbb is:)
    sed -n '/Mar 23 15:45:01/,/Mar 23 15:47:01/p' test.log


    Egyébként itt van egy ami a dátumos részét elintézi, a számosságot már rád bízom, az csak egy plusz változó és egy feltétel:




    #!/bin/bash

    #---------- CONFIG ----------------------

    log="test.log"
    startdate="Mar 23 15:42:00"
    enddate="Mar 23 15:44:01"

    #----------------------------------------

    d=$startdate
    d=${d//[- :]/|}
    IFS="|"
    set -- $d
    # $1 = Mar, $2 = 23, stb
    startd=$2$3$4

    d=$enddate
    d=${d//[- :]/|}
    IFS="|"
    set -- $d
    endd=$2$3$4


    while read line
    do

    d=$line
    d=${d//[- :]/|}
    IFS="|"
    set -- $d
    curdate=$2$3$4

    if [[ "$curdate" -ge "$startd" && "$curdate" -le "$endd" ]] ; then
    echo $line
    fi

    done < $log



    Lényegében tömbösítjük és numerikussá tesszük a dátumokat, majd összehasonlítjuk őket. Ha a hónap is kell, készítesz egy tömböt Mar=>3, Apr=>4, stb és használod.