LINUX : Extraire informations dans une ligne

Bonjour,
A partir de cette ligne :
OFkVAA A87ZTRLa/wE 20110523 050123 026 FPSIT I XFER_RCV1 SYSTCNRP(113662) [1399096] begin receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096

Avec 4 commandes différentes, je souhaite extraire successivement les informations suivantes :
SYSTCNRP
CTPECPR0
/depot1/pesit/prod/2aspheria
00SUCNAP.40983_1399096

Merci d'avance pour votre aide.
Fred

7 réponses

  1. Merci zipe31, effectivement ça marche mieux comme ça (même si au départ je souhaitais extraire chaque information avec une commande différente)
    0
    1. bonjour chers partenaires je suis a votre service
      0
      1. Désolé, voici le résultat demandé:

        OFkVAA A87ZTRLa/wE            20110523 050150 030 FPSIT I XEND_RCV1 SYSTCNRP(113662) [1399096] end receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096
        0
        1. Contributeur
          $ echo "$A" | awk 'BEGIN{FS="[ (,:]+"}{ printf $9"\n"$15"\n"$17"\n"$18"\n" }'
          SYSTCNRP
          CTPECPR0
          /depot1/pesit/prod/2aspheria
          00SUCNAP.40983_1399096
          $
          0
      2. De mon côté ça donne ça:

        050150
        XEND_RCV1
        SYSTCNRP

        bel effort quand même ! ;-)
        0
        1. Contributeur
          Affiches ta ligne entre les balises code du forum (le pictogramme '<>' dans les attributs de mise en forme), afin qu'on puisse repérer s'il y a entre autre des tabulations..
          0
      3. Contributeur
        Salut,

        $ echo $A
        OFkVAA A87ZTRLa/wE 20110523 050123 026 FPSIT I XFER_RCV1 SYSTCNRP(113662) [1399096] begin receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096
        
        $ echo $A | awk 'BEGIN{FS="[ (,:]"}{ printf $9"\n"$15"\n"$19"\n"$20"\n" }'
        SYSTCNRP
        CTPECPR0
        /depot1/pesit/prod/2aspheria
        00SUCNAP.40983_1399096

        ;-))
        0
        1. Pour la 3ème solution ça ne marche pas.
          ça me donne le résultat suivant:
          "030" au lieu de "/depot1/pesit/prod/2aspheria"

          Pour les 3 autres propositions ça marche nickel, il faut juste enlever le petit espace entre la guillemet et l'accolade : "[A-Z]....

          Merci bien !
          0
          1. Modérateur
            Salut,

            Pour la 3ème solution ça ne marche pas.

            C'est normal, puisque tu as donné ton texte non-formaté dans ton 1er message

            OFkVAA A87ZTRLa/wE 20110523 050123 026 FPSIT I XFER_RCV1 SYSTCNRP(113662) [1399096] begin receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096

            Donc un seul espace entrer wE et 2011

            Mais en réalité il y en a plusieurs espaces
            OFkVAA A87ZTRLa/wE            20110523 050150 030 FPSIT I XEND_RCV1 SYSTCNRP(113662) [1399096] end receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096

            C'est pour ça que c'est important de donner le bon format, soit en utilisant les balises codes soit en mettant le fichier sur cjoint par exemple

            Pour la 3ème commande au lieu de 16 tu mets 27
            Voici un exemple, où j'ai mis les deux lignes pour voir la différence

            Avec -f16 (on voit bien 030 sur la 2ème ligne - celle qui est correcte)
            lami20j@debian-acer:~$ cat plop 
            OFkVAA A87ZTRLa/wE 20110523 050123 026 FPSIT I XFER_RCV1 SYSTCNRP(113662) [1399096] begin receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096  
            OFkVAA A87ZTRLa/wE            20110523 050150 030 FPSIT I XEND_RCV1 SYSTCNRP(113662) [1399096] end receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096 
            lami20j@debian-acer:~$ cut -d' ' -f16 plop 
            /depot1/pesit/prod/2aspheria 
            030


            Avec -f27 (rien pour la 1ère ligne, est c'est normal, il n'y a pas le 27ème champ)

            lami20j@debian-acer:~$ cat plop 
            OFkVAA A87ZTRLa/wE 20110523 050123 026 FPSIT I XFER_RCV1 SYSTCNRP(113662) [1399096] begin receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096  
            OFkVAA A87ZTRLa/wE            20110523 050150 030 FPSIT I XEND_RCV1 SYSTCNRP(113662) [1399096] end receiving to CTPECPR0, file: /depot1/pesit/prod/2aspheria 00SUCNAP.40983_1399096 
            lami20j@debian-acer:~$ cut -d' ' -f27 plop 
            
            /depot1/pesit/prod/2aspheria
            0
        2. SYSTCNRP : egrep -o " [A-Z]*\(" | sed 's/(*//g'
          CYTPECPR0 : grep -Eo " [A-Z]*[0-9], " | sed 's/,//g'
          /depot1/pesit/prod/2aspheria : cut -d' ' -f16
          00SUCNAP.40983_1399096 : sed 's/ /\n/g' | tail -1
          0