Bash ne garder que les valeurs numériques

Paullux_1er Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   -  
 Thomas10_10 -
Bonjour,

Je veux supprimer d'un fichier csv (avec ; comme séparateur) les valeurs non numériques.
J'ai donc voulu utiliser sed :
sed -i 's/[^[:digit:]]/;/g' temp2.csv

Mais cela supprime les retours à la ligne.

Je conserve les valeurs numériques et les points-virgules, mais pas les retours à la ligne.

Comment faire pour que ça marche correctement ?

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Normalement sed ne modifie qu'une ligne à fois sans toucher au fin de ligne.
    Ta syntaxe ne devrait normalement pas y toucher non plus, à moins que le format de ton fichier d'entrée ne soit pas conforme ;-\

    Peut-on avoir un bout de ton fichier "csv" via la commande
    cat -A ton_fichier.csv | tail -5
    ?

    0
  2. Paullux_1er Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   1
     
    c'est que cela décomposait les dates cela a donc décalé les infos que je chercher à traiter.
    0
    1. Utilisateur anonyme
       
      sed
      ne modifie qu'une ligne à fois sans toucher aux fins de lignes.
      0
      1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > Utilisateur anonyme
         
        Mea coulpa ;-((
        Quoi que… il n'y a qu'une fin par ligne ;-))
        0
      2. Utilisateur anonyme > zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention  
         
        salut zipe,

        je ne soulignais pas pour toi; je ne comprends pas, moi non plus, comment cette commande pourrait LES ;) altérer.
        0
  3. Thomas10_10
     
    et avec sed "s/[a-zA-Z]//g" nom_de_fichier ?
    0