Ce forum est maintenant fermé, seule cette archive statique reste consultable.
 Page :   1  2  3
Page Suivante
Auteur Sujet :

Commande Unix pour récupérer certaines lignes d'un fichier?

n°3982
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 11:00:38  
 

Reprise du message précédent :

Yom a écrit :

#!/bin/sh
 
if [ $mes_conditions -eq $ma_valeur ] ; then
        monprogramme
fi


 
c'est quoi le "fi"
 
il sert à quoi?

mood
Pub
Posté le 12-03-2003 à 11:00:38  
 

n°3983
Yom
Cultive son Jardin.
Profil : Membre
Posté le 12-03-2003 à 11:02:04  
 

J'ai pas l'habitude de dire ca mais la.. RTFM :)

n°3984
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 11:03:55  
 

Yom a écrit :

J'ai pas l'habitude de dire ca mais la.. RTFM :)


 
çà veu dire quoi "RTFM"!!!!
 

n°3985
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 11:06:03  
 

car il faut faire un  
 
chmod +x monprog
 
et ensuite ./monprog
 
pour qu'il soit exécutable??

n°3990
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 11:49:03  
 

j'ai un peu avancer maintenant j'arrive à récupérer la ligne qui correspond à l'adresse IP qui m'intéresse
 
maintenant il faut que je récupére les 3 lignes suivantes mais je ne sais pas comment faire
 
si quelqu'un aurait une idée elle serait la bien venue

n°3997
Rutkowski
L'inventeur du concept "team"
Profil : Dinosaure
Posté le 12-03-2003 à 13:18:52  
 

danyboon113 a écrit :

il n'y a personne pour répondre à ma quesiotn qui est :
 
es-ce qu'avec AWk on peut lancer l'éxécution d'un programme sous certaines conditions?
 
 :hello:  


 
oui, par exemple, l'instruction :
BEGIN { "/usr/bin/ls" | getline toto }
END { print toto }
 
va afficher la première ligne de la commande shell ls


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°3998
Rutkowski
L'inventeur du concept "team"
Profil : Dinosaure
Posté le 12-03-2003 à 13:19:46  
 

danyboon113 a écrit :


 
c'est quoi le "fi"
 
il sert à quoi?  


 
là, t'exagères, il me semble que quelqu'un t'avait filé une page sur le shell que tu devais potasser


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°3999
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 13:23:23  
 

Rutkowski a écrit :


 
là, t'exagères, il me semble que quelqu'un t'avait filé une page sur le shell que tu devais potasser


 
oué je sais mais c'est bon j'ai compris

n°4000
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 13:25:50  
 

Rutkowski a écrit :


 
oui, par exemple, l'instruction :
BEGIN { "/usr/bin/ls" | getline toto }
END { print toto }
 
va afficher la première ligne de la commande shell ls


 
mais si quand je detecte la ligne qui m'intéresse je veux afficher les 3 lignes suivantes je fais comment?

n°4002
Rutkowski
L'inventeur du concept "team"
Profil : Dinosaure
Posté le 12-03-2003 à 13:47:18  
 

tu met un flag dans ta séquence de recherche d'IP.  
 
/connection from/ { flag=1 }
 
Tu fais une autre séquence de recherche de ligne sans critère particulier qui va afficher la ligne si le flag est posé, faire ça pour 4 lignes
 
// { if (flag == 1) {
          print; next; print; next; print; next; print; flag=0 }


Message édité par Rutkowski le 12-03-2003 à 13:51:43

---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°4003
Rutkowski
L'inventeur du concept "team"
Profil : Dinosaure
Posté le 12-03-2003 à 13:49:41  
 

bien sûr, tu positionne ton flag dans la première séquence en incluant la condition sur tes dates tel que tu l'a écrite plus haut


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°4004
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 14:12:25  
 

l'adresse IP je l'ai converti en nombre entier car quand je fesai un if (ip=124.45.12.200)
 
il m'affiché rien en sorti
 
le script que j'ai créé est celui ci :

Citation :


BEGIN {  
getline nombre < "hsys"  
getline num < "j"  
getline jour < "jour"
}  
 
function conv (toto)  
{ heures=substr(toto,1,2)  
 minutes=substr(toto,4,2)  
 secondes=substr(toto,7,2)  
 return heures*3600 + minutes * 60 + secondes  
}
 
function conv1 (toto)  
{ var1=substr(toto,1,2)  
  var2=substr(toto,4,3)  
  var3=substr(toto,8,3)
  var4=substr(toto,12,2)  
  return var1*10 + var2 * 10 + var3 * 10 + var4 * 10  
}
 
{if((conv($3) < nombre) && (conv($3) > nombre-300))  
   
    if(jour==$1)
 
 if(num==$2)
 
    if(3440==conv1($8))
 
 
 
print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15 }


 
en fesant çà il ne m'affiche qu'une ligne qui est par exemple :
 

Citation :


Mar 12 09:31:10 truc ftpd[10595]: connection from 124.45.12.200 at Wed Mar 12 09:31:10 2003


 
mais je voudrais qu'il m'affiche les 3 lignes suivantes qui sont de la forme :
 

Citation :


Mar 12 09:31:10 truc ftpd[10595]: FTP LOGIN FROM 124.45.12.200, bidule
Mar 12 09:31:10 truc ftpd[10595]: PORT
Mar 12 09:31:10 truc ftpd[10595]: User bidule logged out


 
voila mais le flag je sais pas où le placer dans le script
 

n°4006
Rutkowski
L'inventeur du concept &#034;team&#034;
Profil : Dinosaure
Posté le 12-03-2003 à 14:20:20  
 

ce que j'ai fait est pourtant clair :
dès qu'une ligne contenant "connection from" est détectée, ça veut dire que t'es sur la bonne ligne contenant une ip. Le flag doit être alors positionné ou non en fonction de tes critères d'heure.
L'instruction suivante s'exécute : recopie des 4 lignes, à partir du moment où le flag est positionné


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°4007
Rutkowski
L'inventeur du concept &#034;team&#034;
Profil : Dinosaure
Posté le 12-03-2003 à 14:23:59  
 

autrement dit, si je reprends ton bordel du dessus :
 
/connection from/ {if((conv($3) < nombre) && (conv($3) > nombre-300))  
   
   if(jour==$1)
 
if(num==$2)
 
   if(3440==conv1($8))
flag=1
 
// { if (flag == 1) {  
         print; next; print; next; print; next; print; flag=0 }


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°4017
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 14:46:33  
 

çà marche po
 
 :(

n°4019
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 14:48:41  
 

çà me réécri l'entré standard en sortie
 
c'est bizarre

n°4020
Rutkowski
L'inventeur du concept &#034;team&#034;
Profil : Dinosaure
Posté le 12-03-2003 à 14:48:49  
 

bizarre, faudra que je teste ça ce soir en écrivant réellement le prog pour tester


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°4021
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 14:49:59  
 

j'ai écri çà :
 

Citation :


/connection from/ {if((conv($3) < nombre) && (conv($3) > nombre-300))  
   
    if(jour==$1)
 
 if(num==$2)
 
    if(3440==conv1($8))
 
   flag=1 }
 
//  { if(flag == 1)    
        print; next; print; next; print; next; print; flag=0 }


 
j'ai peu etre mal écri le flag

n°4023
Rutkowski
L'inventeur du concept &#034;team&#034;
Profil : Dinosaure
Posté le 12-03-2003 à 15:30:11  
 

non, c'était moi, erreur de prog.  
Essaie ça :
 
#!/usr/bin/awk -f
 
 
BEGIN {  
#getline nombre < "hsys"  
nombre = 50400
#getline num < "j"  
#getline jour < "jour"
jour = Mar
num = 10
flag=0
}  
 
function conv (toto)  
{ heures=substr(toto,1,2)  
minutes=substr(toto,4,2)  
secondes=substr(toto,7,2)  
return heures*3600 + minutes * 60 + secondes  
}
 
function conv1 (toto)  
{ var1=substr(toto,1,2)  
 var2=substr(toto,4,3)  
 var3=substr(toto,8,3)
 var4=substr(toto,12,2)  
 return var1*10 + var2 * 10 + var3 * 10 + var4 * 10  
}
 
/connection from/ { if((conv($3) < nombre) && (conv($3) > nombre-300))  
   
  if(jour==$1)
 
 if(num==$2)
 
 if(3440==conv1($8))
 
  flag=1
  boucle=1 }
 
{ if (flag == 1 && boucle <=4)  {  
       print; boucle++}
}
 
{ if (flag == 1 && boucle > 4)
     flag = 0
}


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°4025
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 16:09:17  
 

je comprends pas pourquoi tu as fait çà en haut du programme
 

Citation :


#getline nombre < "hsys"    
nombre = 50400  
#getline num < "j"    
#getline jour < "jour"  
jour = Mar  
num = 10  


 
je pense que c'est juste pour faire un exemple?
 
je peu virer les commentaires?
 
et les variables aux quel tu as affecté des valaeurs?
 

n°4026
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 16:10:47  
 

fait pas attention à ce que j'ai di je suis un peu con parfois
 
mais çà marche nikel ton programme c'est trop cool
 
je te remerci beaucoup
 
 :jap:  :jap:  :jap:

n°4027
Rutkowski
L'inventeur du concept &#034;team&#034;
Profil : Dinosaure
Posté le 12-03-2003 à 16:19:23  
 

effectivement, c'est quand j'ai fait des tests, j'ai oublié de virer des trucs.


---------------
Les SPA ne vivent que par vos dons. Pensez-y !
Co-fondateur de Square Avalanche Team - Pro TRPG
Machoc rulez
n°4028
danyboon11​3
Je vais bien tout va bien
Profil : Habitué
Posté le 12-03-2003 à 16:19:59  
 

Rutkowski a écrit :

effectivement, c'est quand j'ai fait des tests, j'ai oublié de virer des trucs.


 
merci je te remerci c'est trop cool
 
 :jap:  :jap:

n°12304
hjab
salut
Profil : Jeune recrue
Posté le 18-06-2004 à 11:43:18  
 

Q: on peut écrir la commande suivante comme suit es que il y a des autres façon
$a
${a}
${a#}
${<a}
pour la reponse on ma dit qu'on peut faire 6 pages es que vous pouvez m'aide ou m'oriente pour cette recherche
merci  

 Page :   1  2  3
Page Suivante
© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés