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 :

Remplacer le moins par underscore


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Par défaut Remplacer le moins par underscore
    Salut !

    J'ai un petit problème depuis ce matin parce que je ne parviens toujours pas à remplacer "-" par "_" dans ceci : CREATE TABLE IF NOT EXISTS "ma_valeur_de-table"..
    J'ai utilisé la commande la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i "s/CREATE TABLE\s+IF NOT EXISTS \"([_\w]+)((\-)([_\w]+))\"/CREATE TABLE IF NOT EXISTS \"\1_\4\"/" ma_valeur_de-table.sql
    mais rien y faire.
    Aidez-moi, s'il vous plait.

  2. #2
    Expert confirmé 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 : 48
    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
    Par défaut
    tu selectionne qu'un patern \1 et tu demande le \4

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # echo 'CREATE TABLE IF NOT EXISTS "ma_valeur_de-table"..' | sed  '/CREATE TABLE.*IF NOT EXISTS/  s/[\w_]/-/g'
    suffit d'après ton exemple

    donnes nous plutot le contenu du fichier à traiter et le resultat attendu (si il y a autre chose à changer que des _ & - comme ça on pourra t'aider à trouver un truc fiable.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Euh… sed 's/-/_/' devrait suffire non ?

  4. #4
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Par défaut
    @zipe31 : ta solution ne peut pas marcher parce qu'elle risque de changer ce que je ne veux pas dans le cas d'un UPDATE par exemple.
    @frp31: voici le contenu d'un de mes fichiers.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE  IF NOT EXISTS "ev_c_squares-jardins" (
       "id_elemgraph"   int NOT NULL, 
       "id_elemgraph_lib"   int NOT NULL, 
       "angle_lib"   int NOT NULL, 
       "id_geo"   char(3) NOT NULL, 
       "date_creation"   timestamp without time zone, 
       "date_modification"   timestamp without time zone, 
       "date_suppression"   timestamp without time zone, 
       "id_meta"   int default NULL
    )  ;
     
     ALTER TABLE "ev_c_squares-jardins" OWNER TO smanetagis;
     TRUNCATE TABLE "ev_c_squares-jardins" CASCADE;

    Ta solution me permettra de faire celle des ALTER, des TRUNCATE et des UPDATE.
    Je l'essaye de suite et je te tiens au courant.

    Merci bien!

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Par défaut
    Et le résultat attendu est:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE IF NOT EXISTS "ev_c_squares_jardins" (
    "id_elemgraph" int NOT NULL,
    "id_elemgraph_lib" int NOT NULL,
    "angle_lib" int NOT NULL,
    "id_geo" char(3) NOT NULL,
    "date_creation" timestamp without time zone,
    "date_modification" timestamp without time zone,
    "date_suppression" timestamp without time zone,
    "id_meta" int default NULL
    ) ;
     
    ALTER TABLE "ev_c_squares_jardins" OWNER TO smanetagis;
    TRUNCATE TABLE "ev_c_squares_jardins" CASCADE;

    C'est pour besoin d'une migration de MySQL vers PostgresSQL.

  6. #6
    Expert confirmé 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 : 48
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # sed '/CREATE/,/\;/ s/-/_/' /tmp/titi
    CREATE TABLE IF NOT EXISTS "ev_c_squares_jardins" (
    "id_elemgraph" int NOT NULL,
    "id_elemgraph_lib" int NOT NULL,
    "angle_lib" int NOT NULL,
    "id_geo" char(3) NOT NULL,
    "date_creation" timestamp without time zone,
    "date_modification" timestamp without time zone,
    "date_suppression" timestamp without time zone,
    "id_meta" int default NULL
    ) ;
     
     
    ALTER TABLE "ev_c_squares-jardins" OWNER TO smanetagis;
    TRUNCATE TABLE "ev_c_squares-jardins" CASCADE;
    #

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Remplacer espaces par underscores dans noms de fichiers
    Par Ysae68 dans le forum Scripts/Batch
    Réponses: 13
    Dernier message: 28/08/2017, 16h56
  2. Réponses: 1
    Dernier message: 21/07/2011, 09h49
  3. Remplacer des blancs par underscore
    Par JOLIFLO57 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/12/2008, 10h30
  4. Comment remplacer un espace par underscore?
    Par Jim_Nastiq dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2006, 16h13
  5. Remplacer plusieurs colonnes par un 'alias'
    Par zestrellita dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/04/2004, 16h51

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