Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/11/2009, à 08:18

sdblepas

[RESOLU]script pour debutant

Bonjour a tous
J'essaie de faire un script qu ouvre un fichier
lit un ligne precise (via grep) et retourne une partie de ce meme grep (via sed)
voila le code
#!/bin/sh

cd /exlibris/primo/p2_1/ng/jaguar/home/profile/log #open se_log

i=grep "total doc number = " agent_9501.log | tail -1 # get one line of the doc number

echo $i

dans i je dois avoir "2009.11.22 18:21:36 slice id: 1 OUTPUT>total doc number = 821126"

apres j'aimerais creer une variable avec 821126 dedans pour faire un echo de ce chiffre

Merci beaucoup

Dernière modification par sdblepas (Le 23/11/2009, à 10:02)

Hors ligne

#2 Le 23/11/2009, à 09:55

MrAzerty

Re : [RESOLU]script pour debutant

Salut
Avec ta méthode (pas mal)

#!/bin/sh

cd /exlibris/primo/p2_1/ng/jaguar/home/profile/log #open se_log

i=$(grep "total doc number = " agent_9501.log | tail -1 | cut -d ' ' -f 10) # get one line of the doc number

echo $i

Remarque: Si tu veux juste afficher le résultat, il est inutile de passer par une variable.
Dans ce cas, supprime la dernière ligne, et remplace l'avant dernière par:

grep "total doc number = " agent_9501.log | tail -1 | cut -d ' ' -f 10

Autre méthode (meilleure)

#!/bin/sh


FICHIER_ENTREE=/exlibris/primo/p2_1/ng/jaguar/home/profile/log/agent_9501.log
CHAINE_RECHERCHEE="total doc number"

awk -v chaine_recherchee=$CHAINE_RECHERCHEE '(index($0,chaine_recherchee)>0){print $10}' $FICHIER_ENTREE)

Remarque: Si tu a plusieurs fois la chaine recherchée dans ton fichier, et que tu n'en veut qu'une, ajoute ceci à la fin de la dernière ligne:

 | tail -1

Attention, je n'ai rien testé!

Dernière modification par MrAzerty (Le 23/11/2009, à 10:04)


On est toujours le geek de quelqu'un.

Hors ligne

#3 Le 23/11/2009, à 10:01

sdblepas

Re : [RESOLU]script pour debutant

j'ai trouve une autre solution (sur un forum)
#!/bin/sh

var=$(sed -n '/total doc number =/{s/.*= //p}' agent_9501.log| uniq)
echo they are $var records in this data base

Merci

Hors ligne