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][sed]utilisation d'un sed pour gérer des doubles quotes


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut [Shell][sed]utilisation d'un sed pour gérer des doubles quotes
    bonjour,

    je bosse actuellement sur une problematique de qualité de données.
    J'ai un fichhier plat donc chaque champ est entouré de double quotes (") et séparé par des virgules.

    Sauf qu'a milieu de tout ca, j'ai certain champs qui possede des doubles quotes en plein milieu de la chaine de caracteres (voire en fin)...


    Je suis donc à la recherche d'un sed qui me permettrait de les mettre en evidence.
    Il faut que je trouve les " (double quotes) qui ne matchent pas avec le patern "," ... et je sais pas trop si c'est faisable, ni comment le faire...

    Si j'arrive à les catcher, je pourrais ensuite soit les supprimer, soit leur rajouter un backslash devant, un truc dans le genre, vous voyez ?


    Quelqu'un aurait une idée ?


    Merci d'avance.


    Steven

  2. #2
    Expert éminent

    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
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Voici une solution, mais n'ayant pas tous les cas possibles et inimaginables, je ne garantie pas le résultat sur ton fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ cat plop
    "lalala","tra la la","ici " c'est "comme ça" ok","et pas la"
    "lalala","tra la la","ici " c'est "comme ça" ok","et pas la""
     
    $ sed 's/\([^,]\)\("\)\([^,]\)/\1\\\2\3/g' plop 
    "lalala","tra la la","ici \" c'est \"comme ça\" ok","et pas la"
    "lalala","tra la la","ici \" c'est \"comme ça\" ok","et pas la\""
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  3. #3
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Nickel ^^ c'est pile ce que je voulais

    thanks

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/10/2011, 17h38
  2. Utiliser MonoCalendar pour gérer des plannings
    Par Miles Raymond dans le forum VB.NET
    Réponses: 13
    Dernier message: 30/09/2011, 10h23
  3. Réponses: 3
    Dernier message: 16/09/2010, 08h34
  4. Réponses: 4
    Dernier message: 01/08/2009, 17h44
  5. [SSH2] Utiliser scp pour gérer des fichiers distants
    Par cybercandyman dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 12/11/2007, 17h03

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