Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/11/2007, 09h38   #1
Futur Membre du Club
 
Inscription : mars 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 54
Points : 19
Points : 19
Par défaut [Shell] problème avec sed et awk

Salut,

voila mon probleme:

j'ai la chaine :
[1005] : [killbill] : : [ST : u dont have access on this machine] [Error number : 55]

et je veu afficher seulement :

[ST : u dont have access on this machine] [Error number : 55]

avec awk ou sed

ou bien d'autre com.

Merci.
tizilfin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 11h47   #2
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2007
Messages : 89
Points : 31
Points : 31
Envoyer un message via Skype™ à LeCogiteur
Salut

j'ai un truc peut etre pas parfait parfait mais sa marche

Citation:
echo "[1005] : [killbill] : : [ST : u dont have access on this machine] [Error number : 55]" | cut -f4,5,6 -d":"
ou

Citation:
echo "[1005] : [killbill] : : [ST : u dont have access on this machine] [Error number : 55]" | cut -f4,5 -d"["
regarde la commande cut il y a aussi l'option -c qui permet de sélection des caractères aussi
LeCogiteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 12h31   #3
Futur Membre du Club
 
Inscription : mars 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 54
Points : 19
Points : 19
Merci,mais le problème c que on doit pas préciser quelle partie supp (-f4,5,6 ),parsque le text d'entrée est variable ,et en + je veux afficher ce truc :

[ST : u dont have access on this machine] [Error number : 55]

Et non pas :

espace+[ST : u dont have access on this machine] [Error number : 55]

C-à-d afficher le text à partir de :
[ST...-->

En d'autre terme dire à la commande sed ou awk de me retourner la chaine à partir de [ST jusqu'a la fin.
tizilfin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 14h03   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
voilà la solution avec SED:
Code :
echo [1005] : [killbill] : : [ST : u dont have access on this machine] [Error number : 55] | sed -e "s/.*\[ST/\[ST/"
exemple concret :

remplacer . (tout caractere) * (en nombre inconnu) suivi de [ST par
seulement [ST sans toucher au reste
"s/.*\[ST/[ST/"
puisque tu connais le texte du message a afficher
mais que le début de la ligne est variable c'est la meilleure solution.

Code :
1
2
3
4
..(root@zaphod).(23/pts).(14:01:11/09/07).-
..($:~).- echo [1005] : [killbill] : : [ST : u dont have access on this machine] [Error number : 55] | sed -e "s/.*\[ST/\[ST/"
[ST : u dont have access on this machine] [Error number : 55]
..(root@zaphod).(24/pts).(14:02:11/09/07).-
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 11h29   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 15
Points : 11
Points : 11
Bonjour,

Tu as la solution suivante avec awk qui fonctionne bien :

#> echo "[1005] : [killbill] : : [ST : u dont have access on this machine] [Error number : 55]" | awk -F ": :" '{print $2}'
[ST : u dont have access on this machine] [Error number : 55]

J'espère que cela te convient.

a+
Cordialement
oups33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 13h01   #6
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Et une version grep:

Code :
echo $taChaine | grep -o '\[ST.*'
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h41.


 
 
 
 
Partenaires

Hébergement Web