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. 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
    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. 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. 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
      2. 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
      3. bonjour chers partenaires je suis a votre service
        0
        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