perl/sed/tr

Top Page

Reply to this message
Author: Patrick Dupre
Date:  
To: guilde
Subject: perl/sed/tr
Bonjour,

Dans un programme perl je peux faire

system ("sed 's/[\\-]\\?[.0-9e]*[-+]\\?[0-9]*,[0-9]\\?.[0-9]*e\\?[-+]\\?[0-9]*$//' <<< "line[nb_samp-1]" | tr -d '\n'")
sur un fichier linux (ou apres conversion d'un fichier dos2 unix)

Comme je veux eviter cette conversion, je fais :
system ("sed 's/[\\-]\\?[.0-9e]*[-+]\\?[0-9]*,[0-9]\\?.[0-9]*e\\?[-+]\\?[0-9]*$//' <<< "line[nb_samp-1]" | tr -d '\r\n'")

Mais cela ne fonctonne pas car la fin de ligne n'est pas detectee par sed

J'ai bien verifie avec:

head -n1 050618_C2H2_R2_0_25Pa_2.txt |tr -d '\r\n'| od -a

me suprime bien le \t\n caracteres de fin de ligne du dos.
ou
encore
sed 's/[\-]\?[.0-9e]*[-+]\?[0-9]*,[0-9]\?.[0-9]*e\?[-+]\?[0-9]*$//' <<< `head -n1 050618_C2H2_R2_0_25Pa_2.txt | tr -d '\r\n'`
fonctionne correctemnt.

Il faut donc que je fasse la meme chose depuis perl.
C'est-a-dire:
il faut forcer la commande
"line[nb_samp-1]" | tr -d '\r\n'
avant le sed
Mais je ne sais comment faire.

Merci d'avance

===========================================================================
 Patrick DUPRÉ                                 | | email: pdupre@???
 Laboratoire interdisciplinaire Carnot de Bourgogne
 9 Avenue Alain Savary, BP 47870, 21078 DIJON Cedex FRANCE
 Tel: +33 (0)380395988
===========================================================================