Bash ne garder que les valeurs numériques

Paullux_1er Messages postés 142 Statut Membre -  
 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

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
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
Paullux_1er Messages postés 142 Statut Membre 1
 
c'est que cela décomposait les dates cela a donc décalé les infos que je chercher à traiter.
0
Utilisateur anonyme
 
sed
ne modifie qu'une ligne à fois sans toucher aux fins de lignes.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433 > Utilisateur anonyme
 
Mea coulpa ;-((
Quoi que… il n'y a qu'une fin par ligne ;-))
0
Utilisateur anonyme > zipe31 Messages postés 38797 Statut Contributeur
 
salut zipe,

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