LINUX : Extraire informations dans une ligne

farlane -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
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. 4lex
     
    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
  2. farlane Messages postés 11 Statut Membre 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. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
  3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  4. farlane Messages postés 11 Statut Membre 1
     
    De mon côté ça donne ça:

    050150
    XEND_RCV1
    SYSTCNRP

    bel effort quand même ! ;-)
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. farlane Messages postés 11 Statut Membre 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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      $ echo "$A" | awk 'BEGIN{FS="[ (,:]+"}{ printf $9"\n"$15"\n"$17"\n"$18"\n" }'
      SYSTCNRP
      CTPECPR0
      /depot1/pesit/prod/2aspheria
      00SUCNAP.40983_1399096
      $
      0
  7. m.e.camara Messages postés 2 Statut Membre
     
    bonjour chers partenaires je suis a votre service
    0
  8. farlane Messages postés 11 Statut Membre 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