Bonjour,
Je souhaiterai savoir à quoi correspond les valeurs b[1] b[2] b[3] b[4].
En lançant Quelle est le bon format printf pour que ces valeurs apparaissent en mode debug ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #!/bin/bash
log_name=$1
if [[ "$log_name" =~ .gz$ ]]
then z_cat="gunzip -c"
else z_cat=cat
fi
$z_cat $log_name |awk -F"[/ \\\][]" -v S="24/01/2013 10:10" -v E="24/01/2013 10:30" '
function dcmp(b) {
if($4>b[3])return 1;
if($4<b[3])return -1;
if($3>b[2])return 1;
if($3<b[2])return -1;
if($2>b[1])return 1;
if($2<b[1])return -1;
if($5>b[4])return 1;
if($5<b[4])return -1;
return 0;
}
BEGIN{split(S, ds, "[/ ]"); split(E, de, "[/ ]") }
/^[[][0-9][0-9]\/[0-1][0-9]\/[[0-9][0-9][0-9][0-9] / {
if(s&&dcmp(de)>=0) {print; exit}
if(!s&&dcmp(ds)<=0) {f=x;w=1}
if(!s&&dcmp(ds)>=0) {printf "%s",f; f=x; s=1 }
}
!w&&!s {f=f $0 "\n"}
s' |
Pour info
echo "[24/01/2013 10:10 10:30]" | awk -F"[/ \\\][]" '{ print FS ; print $2; print $3; print $4; print $5; print $6;}'
renvoie
1 2 3 4 5 6
| [/ \][]
24
01
2013
10:10
10:30 |
Merci par avance.
Partager