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 :

Filtrer le contenu d'un fichier selon le type de données


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Par défaut Filtrer le contenu d'un fichier selon le type de données
    Bonjour à tous,

    Voilà, ma question est assez simple.

    Je dispose d'un fichier texte contenant à la fois des réels, des entiers ainsi que des chaines de caractères. Je voudrais tout simplement supprimer tous les réels. Existe-t-il une commande pour ça ? Quelle est sa syntaxe ?

    Merci beaucoup d'avance !

    nicolas823

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Bonjour,

    il nous faudrait un exemple du fichier en entrée, et la sortie souhaitée correspondante.
    a priori :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/[0-9]*\.[0-9]* //g' fichier
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Tout dépend de la façon dont sont rangées les informations. Est-ce par exemple une info (réel, entier ou chaine) par ligne ? Plusieurs infos mélangées sur la même ligne ? Dans ce dernier cas comment sont séparées deux infos différentes ? etc...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour,

    je suis d'accord sur le fait qu'il faudrait un échantillon du fichier d'entrée.
    Par contre, pour la solution a priori, je ne suis pas d'accord car l'expression régulière donnée supprime tous les points du fichier. Essayons plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/[0-9]\+\.[0-9]\+//g' fichier

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Par contre, pour la solution a priori, je ne suis pas d'accord car l'expression régulière donnée supprime tous les points du fichier. Essayons plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/[0-9]\+\.[0-9]\+//g' fichier
    Ton instruction impose la présence d'un chiffre minimum avant le point décimal et considère qu'ils sont tous positifs.
    Or quid des négatifs ? Et peut-être que ".12" est accepté comme réel licite (ok, j'admets que pour ce dernier point je torture vraiment le mammouth). Mais la question des négatifs, elle, est quand-même importante non ?

    C'est pourquoi moi je proposerai sed -e "s/-\{0,1\}[0-9]\{0,\}\.[0-9]\{1,\}//g" fichier gérant aussi bien les positifs que les négatifs et acceptant aussi ".12" comme réel...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Admettons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ sed 's/-\?[0-9]*\.[0-9]\+//g' <<< "toto 0.7 -0.345 .63 -.35 36 maman.avion"
    toto    36 maman.avion
    Rappel des quantités(indépendant des échappements):
    1: pas d'indication
    0 ou 1: ?
    1 ou +: +
    0 ou +: *

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Par défaut
    La première réponse me convient très bien.

    Merci à tous.

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

Discussions similaires

  1. Ranger des fichiers selon leur type
    Par Battant dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 17/06/2015, 08h08
  2. [Batch] Trier le contenu d'un fichier selon plusieurs critères
    Par ahu206 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 06/09/2010, 14h38
  3. Réponses: 6
    Dernier message: 14/01/2008, 12h45
  4. filtrer le contenu d'un fichier texte
    Par darkwall_37 dans le forum Windows
    Réponses: 3
    Dernier message: 13/11/2007, 01h28
  5. Réponses: 25
    Dernier message: 13/09/2007, 14h43

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