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 :

AWK suppression d'espace dans une ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut AWK suppression d'espace dans une ligne
    Bonjour,

    J'ai un fichier qui a le format suivant :

    "aaaaa;bbbbb;ccc ccc ccc;ddddd"

    Le résultat attendu est le suivant :

    "aaaaa;bbbbb;ccccccccc;ddddd" --> autrement dit la suppression des espaces du troisième champ.

    En faisant quelques recherches sur awk, commande qui doit savoir faire ce genre de truc par trop compliqué, j'en suis arrivé à la commande suivante :

    echo "aaaaa;bbbbb;ccc ccc ccc;ddddd" | awk -F ';' '{ sub(/ */,"",$3); print}'

    (sub remplace les blancs de la chaine $3 par rien)

    sauf que ca me donne le résultat suivant :

    "aaaaa bbbbb ccc ccc ccc ddddd"

    Savez vous pourquoi ?

    Merci par avance,

  2. #2
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    sub cherche et remplace seulement la 1ère occurence rencontrée.
    gsub traite toutes les occurences.
    En plus, c'est / / et non pas / */

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "aaaaa;bbbbb;ccc ccc ccc;ddddd" | awk -F ';' '{ gsub(/ /,"",$3); print}'

  3. #3
    Membre chevronné

    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Par défaut
    Il semble que gsub perturbe quelque peu la valeur du separateur. Ajoute OFS=";" avant le print.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut
    Merci à tous les deux. Cela résout mon problème.


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

Discussions similaires

  1. Suppression d'espace dans une rubrique
    Par GodGives dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/12/2007, 18h56
  2. Suppression d'espace dans une rubrique de requête sql
    Par GodGives dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/12/2007, 17h52
  3. [Free Pascal] Suppression des espaces dans une chaîne
    Par Maxence45 dans le forum Free Pascal
    Réponses: 43
    Dernier message: 18/03/2007, 11h29
  4. disperser les espaces dans une ligne
    Par widi70 dans le forum C++
    Réponses: 39
    Dernier message: 29/01/2007, 23h09
  5. Suppression d'espaces dans une chaîne
    Par dafalri dans le forum Langage
    Réponses: 11
    Dernier message: 20/02/2006, 13h13

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