IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Mettre en forme un fichier de destination


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Par défaut Mettre en forme un fichier de destination
    Bonjour,

    Voici mon fichier source FIC1:
    FIC1
    O790565.1350:= JCLFILE : /users/exploit/bin/BA850.Prod
    O790565.1350:= Exit Status : 0

    Je souhaite extraire 2 valeurs de ce fichier et le mettre (cote cote) dans FIC2:
    FIC2
    BA850.Prod 0

    Je souhaiterais ensuite faire cette boucle

    # !/usr/bin/ksh
    while read nom code
    do
    if [ $code = 0 ]
    then
    print "Pas de Plantage sur le JOB " >2&1
    else
    print "Plantage sur le JOB $nom" >2&1
    fi
    done < $FIC2

    Je n'arrive pas a extraire et mettre en forme FIC2 .

    Merci de votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    c est très très moche mais bon ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo FIC2 > FIC2
    echo `sed '3d' FIC1` > tmp
    echo -n ` cat tmp | cut -f5 -d/` >> FIC2
    echo -n ' ' >> FIC2
    echo `sed '2d' FIC1` > tmp
    echo `cat tmp | cut -f3 -d:` >> FIC2
    rm tmp
    cat FIC2

  3. #3
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Exemple de FIC1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    O790565.1350:= JCLFILE : /users/exploit/bin/BA850.Prod
    O790565.1350:= Exit Status : 0
    blabla 
    ../..
    blabla 
    8888888.8888:= JCLFILE : /users/exploit/bin/BA900.Prod
    8888888.8888:= Exit Status : 1
    .../..

    Avec awk :
    http://www.shellunix.com/awk.html
    http://www.shellunix.com/regexp.html


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    awk '
    {
    	if ($0 ~ /JCLFILE/) {
    		gsub(/^.*\//,"",$0) #-- suppression de tous les caractères jusqu au dernier /
    		printf("%s ",$0) 
    		getline   #-- lecture enreg. suivant
    		gsub(/^.* : /,"",$0)   #-- suppression de tous les caractères jusqu au :
    		print $0 
    	}
    } ' FIC1 > FIC2
     
    while read nom code
    do
    	if [ $code = 0 ] ; then
    		echo "Pas de Plantage sur le JOB $nom" 2>&1
    	else
    		echo "Plantage sur le JOB $nom" 2>&1
    	fi
    done < FIC2
    Resultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Pas de Plantage sur le JOB BA850.Prod
    Plantage sur le JOB BA900.Prod

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Par défaut
    Merci de vos reponses .....
    Je vais essayer ces codes a mon boulot .....je vous tiens informé !!!!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Par défaut
    Fichier FIC1
    ============================================
    cat FIC1
    O746781.0730:= JCLFILE : /users/exploit/bin/BA850.Prod
    O746781.0730:= Exit Status : 0
    ===========================================

    Le 1er code me donne ca !!!
    -----------------------------------------------
    ./DEVCOM01.ksh
    FIC2
    -n BA850.Prod O746781.0730:= Exit Status : 0
    -n
    /users/exploit/bin/BA850.Prod
    ----------------------------------------------
    Le 2emme code fonctionne ..
    >./DEVCOM02.ksh
    Pas de Plantage sur le JOB BA850.Prod
    ----------------------------------------------

    Je vais conserver le 2emme qui me satisfait beaucoup pour l'integrer pour des remontés Alert Mail sur blackberry pour les Astreintes... merci a vous, pour ce coup de main, je suis super content je vais avoir un bon point de mon super chef . Salut

  6. #6
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Suite à ton MP, Exemple de gestion de FIC1 avec 1 job sans Exit Status :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    O790565.1340:= JCLFILE : /users/exploit/bin/PAUSE7200
    O790565.1350:= JCLFILE : /users/exploit/bin/BA850.Prod
    O790565.1350:= Exit Status : 0
    blabla 
    ../..
    blabla 
    8888888.8888:= JCLFILE : /users/exploit/bin/BA900.Prod
    8888888.8888:= Exit Status : 1
    .../..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    awk '
    {
    	if ($0 ~ /JCLFILE/) {
    		gsub(/^.*\//,"",$0) #-- suppression de tous les caractères jusqu au dernier /
    		Job=$0
    		next
    	}
    	if ($0 ~ /Exit Status/) {
    		gsub(/^.* : /,"",$0) #-- suppression de tous les caractères jusqu au :
    		print Job,$0 
    	}
    } ' FIC1 > FIC2
     
    while read nom code
    do
    	if [ $code = 0 ] ; then
    		echo "Pas de Plantage sur le JOB $nom" 2>&1
    	else
    		echo "Plantage sur le JOB $nom" 2>&1
    	fi
    done < FIC2

    Version + compacte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    awk '
    {
    	if ($0 ~ /JCLFILE/) {
    		gsub(/^.*\//,"",$0) #-- suppression de tous les caractères jusqu au dernier /
    		Job=$0
    		next
    	}
    	if ($0 ~ /Exit Status/) {
    		gsub(/^.* : /,"",$0) #-- suppression de tous les caractères jusqu au :
    		# print Job,$0 
    		if ($0 == "0") {
    			print "* pas de plantage sur le JOB "Job 
    		} else {
    			print "*** Plantage sur le JOB "Job 
    		}
    	}
    } ' FIC1

    Résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    * pas de plantage sur le JOB BA850.Prod
    *** Plantage sur le JOB BA900.Prod

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/01/2012, 09h59
  2. Mettre en forme un fichier Excel après une requête
    Par Tofalu dans le forum Contribuez
    Réponses: 0
    Dernier message: 29/12/2010, 22h18
  3. Réponses: 3
    Dernier message: 26/08/2008, 14h45
  4. Mettre le nom du fichier dans TextEdit ?? Avec CFileDialog
    Par P'tit Troll dans le forum Windows
    Réponses: 2
    Dernier message: 19/04/2005, 17h32
  5. Exportattion de données sous forme de fichiers
    Par bidson dans le forum XMLRAD
    Réponses: 20
    Dernier message: 08/06/2004, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo