Bonjour,

je souhaite créer un script qui permet de convertir les retours chariots unix et dos.

j'ai réalisé un premier script qui fonctionne correctement et qui permet de convertir les retours chariots UNIX en DOS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#!/usr/bin/perl
###conversion retour chariot UNIX (LF) en  DOS (CRLF)
###lecture et ecriture des fichiers en UTF8 
 
 
open IN, "<:encoding(UTF-8)",     "$ARGV[0]";
open OUT, ">:encoding(UTF-8)",     "testOutDos.txt";
 
$/=undef;
 
 
while($ligne =  <IN>)
 
{
s/\n/\r/g;###conversion retour chariot unix en DOS
print OUT $ligne;
 
}
 
close;
le second script devrait convertir les retours chariots DOS en UNIX mais il ne fonctionne pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#!/usr/bin/perl
###conversion retour chariot DOS (CRLF) en UNIX (LF)
###lecture et ecriture des fichiers en UTF8 
 
 
open IN, "<:encoding(UTF-8)",     "$ARGV[0]";
open OUT, ">:encoding(UTF-8)",     "testOutUnix.txt";
 
#$/=undef;
 
 
while($ligne =  <IN>)
 
{
 
s/\r/\n/g;###conversion retour chariot DOS en UNIX
print OUT $ligne;
 
}
 
close;
typiquement \n est traduit par LF
et \r par CR

dans la pratique mon premier script fonctionne mais le second non.

si vous avez une idée merci.