LINUX : Extraire informations dans une ligne

farlane -  
lami20j Messages postés 21331 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
A voir également:

7 réponses

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
farlane Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   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
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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
farlane Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
De mon côté ça donne ça:

050150
XEND_RCV1
SYSTCNRP

bel effort quand même ! ;-)
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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