IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

[Shell] problème avec sed et awk


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 54
    Points : 36
    Points
    36
    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.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Salut

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

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

    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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    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.

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    voilà la solution avec SED:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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).-

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    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

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Et une version grep:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $taChaine | grep -o '\[ST.*'

Discussions similaires

  1. script shell: problème avec le caractère espace
    Par Le fut dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 04/05/2017, 11h49
  2. problème avec la commande awk
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 05/06/2007, 13h02
  3. script shell : probleme avec sed et awk
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 05/06/2007, 11h57
  4. Problème avec sed
    Par Zlika_ese dans le forum Linux
    Réponses: 1
    Dernier message: 26/05/2007, 21h39
  5. Script avec sed et awk
    Par arezki76 dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 04/01/2007, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo