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 :

Des caractères comme * [ .. , dans "sed"


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 80
    Points : 67
    Points
    67
    Par défaut Des caractères comme * [ .. , dans "sed"
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Line="msisdn;//subscriptionId/type/*[name()='msisdn']/parent::*/parent::*/id;"
    echo $Line | sed  -e "s@$Line@123456@g"
    rien n'est modifié dans la chaine $Line
    Je crois que le problème c'est cause du caractère *.
    Est ce que vous avez une solution pour remplacer cette ligne par une ligne contenant "123456"

    Merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Comme tout autre caractère spécial, il faut un caractère d'échappement (\) devant pour le prendre en compte comme caractère litéral.
    Il n'y a pas que * qui pose problème, il y a aussi []( et )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Line="msisdn;//subscriptionId/type/\*\[name\(\)='msisdn'\]/parent::\*/parent::\*/id;"
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 80
    Points : 67
    Points
    67
    Par défaut
    Ce n'est pas ça le problème, parce que la variable "Line" est lu à partie d'un fichier, et elle meut contenir n'importe quelle valeur, donc y a pas moyen de mettre un "/" avant chaque caractère special

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par al1_24
    Comme tout autre caractère spécial, il faut un caractère d'échappement (\) devant pour le prendre en compte comme caractère litéral.
    Il n'y a pas que * qui pose problème, il y a aussi []( et )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Line="msisdn;//subscriptionId/type/\*\[name\(\)='msisdn'\]/parent::\*/parent::\*/id;"
    bonjour,

    tu fais un formatage dynamique à ta variable "line"

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    line="msisdn*msisdn"
    echo $line > tmp_file
    sed 's/*/\\*/g' tmp_file > tmp1_file
    .......................................
    ......................................
    et après tu réccupère ta variable $line qui est dans le fichier tmp1_file

    turbo_chess
    Demain n'est plus à attendre mais à inventer !!!

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 80
    Points : 67
    Points
    67
    Par défaut
    Merci, je crois que ça peut jouer l'affaire

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par oumokhtar
    Merci, je crois que ça peut jouer l'affaire
    bonjour,

    pas de quoi

    bon courage.

    turbo_chess
    Demain n'est plus à attendre mais à inventer !!!

Discussions similaires

  1. Réponses: 10
    Dernier message: 31/03/2006, 20h46
  2. Chaînes avec des caractères accentués dans Interbase
    Par François Marliac dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39

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