[Shell] : supprimer des caractères en fin de lignes

: supprimer des caractères en fin de lignes [Shell] - Shell/Batch - Programmation

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.

Reply

Marsh Posté le 11-03-2009 à 11:43:03   

Reply

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 ;)


---------------
Worldcraze 10loop
Reply

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]

Reply

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  :love:  
 
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  :cry:

Message cité 1 fois
Message édité par macgawel le 11-03-2009 à 13:28:24
Reply

Marsh Posté le 11-03-2009 à 13:28:09    

c'est sous unix.
 
Merci pour ta réponse

Reply

Marsh Posté le 11-03-2009 à 13:28:48    

macgawel a écrit :


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...


 
sed n'est pas exactement un éditeur de texte.

Reply

Marsh Posté le 11-03-2009 à 13:34:48    

Elmoricq a écrit :


 
sed n'est pas exactement un éditeur de texte.


 [:negro]
D'après Wikipedia

Citation :

sed (abréviation de Stream EDitor, « éditeur de flux »)

Au temps pour moi  :o

Reply

Marsh Posté le 11-03-2009 à 14:17:14    

sed 's/,*$//'

Reply

Marsh Posté le 11-03-2009 à 14:35:53    

Ouais le modificateur 'g' est effectivement inutile ici.

Reply

Marsh Posté le 12-03-2009 à 11:16:56    

J'avais pas vu que tu avais déjà donné la réponse, désolé.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed