: supprimer des caractères en fin de lignes [Shell] - Shell/Batch - Programmation
Marsh Posté le 11-03-2009 à 12:32:14
un parseur parait une bonne solution
tu pars de la fin de ta chaine et tu retire toutes les caracteres = ',' des que tu trouve un caractere different de ',' tu arete ta boucle et tu affiche
Marsh Posté le 11-03-2009 à 13:26:43
Quel système d'exploitation ?
Sous Unix, il suffit d'écrire :
sed 's/,*$//g' [ton fichier] > [un autre fichier]
Ou encore, quelque soit l'OS, si tu as PERL installé sur ta machine (standard sur Unix maintenant) :
perl -pi -e 's/,*$//g' [ton fichier]
Marsh Posté le 11-03-2009 à 13:27:46
Tu utilises quoi ?
Shell, Batch, ... ? Windows (lequel), UNIX/Linux (lequel), autre ?
Tu dois utiliser le Shell ?
Pour ce que tu veux faire, il y a les expressions régulières
Sous Win, je ne sais pas trop,mais sous UNIX/Linux il y a l'éditeur de texte sed qui devrait te permettre de faire ça en une ligne...
[Edit]grilled
Marsh Posté le 11-03-2009 à 13:28:48
macgawel a écrit : |
sed n'est pas exactement un éditeur de texte.
Marsh Posté le 11-03-2009 à 13:34:48
Elmoricq a écrit : |
D'après Wikipedia
Citation : sed (abréviation de Stream EDitor, « éditeur de flux ») |
Au temps pour moi
Marsh Posté le 12-03-2009 à 11:16:56
J'avais pas vu que tu avais déjà donné la réponse, désolé.
Marsh Posté le 11-03-2009 à 11:43:03
Bonjour,
Je voudrais supprimer toutes les virgules en fin de ligne de mon fichier (sachant que je connais pas leur nombre ni leur position).
exemple fichier toto :
1,2,4,,,5,,,
2,4,,,,,,
12,4,A,,,,
....
résultat attendu:
1,2,4,,,5
2,4
12,4,A
j'ai pensé à une boucle en testant à chaque fois le dernier caractère. Y-at-il une façon plus simple ?
Merci pour votre aide.