enlever les espaces en fin de ligne [script] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 28-09-2005 à 10:50:20
ReplyMarsh Posté le 28-09-2005 à 10:59:57
ReplyMarsh Posté le 28-09-2005 à 11:01:42
je ne sais que dire...
Code :
|
manu@ferment:~$ echo -e "yop \ntruc\t\t" | sed 's/\s\+$//' | hexdump -c
0000000 y o p \n t r u c \n
0000009
Marsh Posté le 28-09-2005 à 11:36:56
euh moi ce que je voudrais par exemple c'est que si j'ai ça :
|
(sans les " " qui ne sont là que pour marquer le début et la fin de la ligne)
je voudrais que ça devienne :
|
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 :
|
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
Marsh Posté le 28-09-2005 à 13:01:28
ReplyMarsh 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
merci
Marsh Posté le 28-09-2005 à 13:07:32
minusplus a écrit : wé je sais, c'est un réflexe que j'ai... |
bah mauvais réflexe. ça t'aurais évité d'expliquer le cat
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...
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
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 |
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)
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
Marsh Posté le 28-09-2005 à 15:45:19
ah bah voilà ça ça marche parfaitement
merci pour tous ces efforts
Marsh Posté le 28-09-2005 à 16:57:33
l0ky a écrit : cat test.txt | sed s/' '\$//g > res3.txt |
Code :
|
on peut la remplacer par :
Code :
|
L'option "-i" permet d'écrire directement dans le fichier.
C'est juste pour info.
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