[script] enlever les espaces en fin de ligne

enlever les espaces en fin de ligne [script] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 28-09-2005 à 10:34:47    

Je cherche un script qui enlève tous les espaces en fin de ligne d'un fichier texte.
 
Merci :)

Reply

Marsh Posté le 28-09-2005 à 10:34:47   

Reply

Marsh Posté le 28-09-2005 à 10:37:27    

utilises sed

Reply

Marsh Posté le 28-09-2005 à 10:39:03    

cat file | sed 's/\s+$//'

Reply

Marsh Posté le 28-09-2005 à 10:45:40    

minusplus : ça ne fonctionne pas :/

Reply

Marsh Posté le 28-09-2005 à 10:46:50    

message d'erreur :heink: ?

Reply

Marsh Posté le 28-09-2005 à 10:48:16    

non juste ça ne fait rien :)

Reply

Marsh Posté le 28-09-2005 à 10:48:19    

aucun mais ça n'enlève pas les espaces.

Reply

Marsh Posté le 28-09-2005 à 10:50:20    

sorry, j'ai loupé un \ :o
 
cat file | sed 's/\s\+$//'

Reply

Marsh Posté le 28-09-2005 à 10:59:57    

minusplus a écrit :

sorry, j'ai loupé un \ :o
 
cat file | sed 's/\s\+$//'


 
caramba, encore raté ! :/

Reply

Marsh Posté le 28-09-2005 à 11:01:42    

je ne sais que dire... :o
 

Code :
  1. manu@ferment:~$ echo -e "yop  \ntruc\t\t" |  sed 's/\s\+$//' | hexdump -c
  2. 0000000   y   o   p  \n   t   r   u   c  \n
  3. 0000009


 
manu@ferment:~$ echo -e "yop  \ntruc\t\t" |  sed 's/\s\+$//' | hexdump -c
0000000   y   o   p  \n   t   r   u   c  \n
0000009


Message édité par minusplus le 28-09-2005 à 11:02:27
Reply

Marsh Posté le 28-09-2005 à 11:01:42   

Reply

Marsh Posté le 28-09-2005 à 11:02:16    

c'est quoi ce con de forum qui bousille les \ :heink:

Reply

Marsh Posté le 28-09-2005 à 11:36:56    

euh moi ce que je voudrais par exemple c'est que si j'ai ça :


"toto   "
"toto        "


 
(sans les " " qui ne sont là que pour marquer le début et la fin de la ligne)
 
je voudrais que ça devienne :
 


"toto"
"toto"


Reply

Marsh Posté le 28-09-2005 à 12:06:13    

freewol a écrit :

euh moi ce que je voudrais par exemple c'est que si j'ai ça :


"toto   "
"toto        "


 
(sans les " " qui ne sont là que pour marquer le début et la fin de la ligne)
 
je voudrais que ça devienne :
 


"toto"
"toto"



ben c'est ce que je t'ai marqué au dessus... tu pipe ton fichier à travers un sed :
 
cat fichier_entrée | sed 's/\s\+$//' > fichier_sortie

Reply

Marsh Posté le 28-09-2005 à 12:52:01    

Reply

Marsh Posté le 28-09-2005 à 13:01:28    

Taz a écrit :

cat inutile.


wé je sais, c'est un réflexe que j'ai... :o

Reply

Marsh Posté le 28-09-2005 à 13:03:15    

bon effectivement ça marche, désolé j'avais du mal taper la commande la dernière fois :sweat:
 
merci :)

Reply

Marsh Posté le 28-09-2005 à 13:07:32    

minusplus a écrit :

wé je sais, c'est un réflexe que j'ai... :o


bah mauvais réflexe. ça t'aurais évité d'expliquer le cat

Reply

Marsh Posté le 28-09-2005 à 13:12:07    

Taz a écrit :

bah mauvais réflexe. ça t'aurais évité d'expliquer le cat


wé mais j'les aime mes réflexes et ça m'dérange pas de les expliquer... :o

Reply

Marsh Posté le 28-09-2005 à 14:39:25    

bon en fait le script fonctionne bien sur un vieu linux (une station sun je crois !), mais ni sur une debian sarge ni sur une redhat 9 :/
 
et d'autre part je ne comprends pas pourquoi le + doit être échappé ?
 
désolé d'être long à comprendre :/

Message cité 1 fois
Message édité par freewol le 28-09-2005 à 14:39:59
Reply

Marsh Posté le 28-09-2005 à 14:44:00    

freewol a écrit :

bon en fait le script fonctionne bien sur une vieille sun (!), mais ni sur une debian sarge ni sur une redhat 9 :/
 
et d'autre part je ne comprends pas pourquoi le + doit être échappé ?
 
désolé d'être long à comprendre :/


parce que quelqu'un a eu la bonne idée de définir des regular expression POSIX "standard" (ou basiques) et POSIX "extended", celles de perl, celles de vim, etc...
 
donc des fois faut mettre + des fois faut mettre \+. Essaye les deux sous debian, un des deux devrait marcher. Si tu veux être certain de ce que tu fais, tu passe en perl. Les regexp de perl sont très bien documentées (man perlre et man perlop)

Reply

Marsh Posté le 28-09-2005 à 14:49:41    

non sous debian ni l'un ni l'autre ne fonctionnent :/

Reply

Marsh Posté le 28-09-2005 à 15:00:27    

cat test.txt | sed s/' '\$//g > res3.txt
 
Sous debian celle ci fonctionne (oui il y a le cat)
 
edit: elle enleve juste le denier espace

Message cité 1 fois
Message édité par l0ky le 28-09-2005 à 15:01:12
Reply

Marsh Posté le 28-09-2005 à 15:02:06    

bon ben fait  
 
perl -pe 's/[[:blank:]]+$//' fichier
 
:o

Reply

Marsh Posté le 28-09-2005 à 15:45:19    

ah bah voilà ça ça marche parfaitement :)
 
merci pour tous ces efforts :jap:

Reply

Marsh Posté le 28-09-2005 à 16:57:33    

l0ky a écrit :

cat test.txt | sed s/' '\$//g > res3.txt
 
Sous debian celle ci fonctionne (oui il y a le cat)
 
edit: elle enleve juste le denier espace


 

Code :
  1. cat test.txt | sed s/' '\$//g > res3.txt


 
on peut la remplacer par :
 

Code :
  1. sed -i s/' '\$//g res3.txt


 
L'option "-i" permet d'écrire directement dans le fichier.
 
C'est juste pour info.  ;)  

Reply

Marsh Posté le 28-09-2005 à 18:58:46    

Mais -i n'est pas standard.

Reply

Marsh Posté le 28-09-2005 à 19:08:55    

bah alors perl -i :o

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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