Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1610 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  supprimer retour à la ligne

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

supprimer retour à la ligne

n°2296755
mouda
Posté le 23-02-2017 à 13:38:07  profilanswer
 

comment supprimer un retour à la ligne en fait  
 
j'ai fait :  
  s/\n/ /g;
  s/\n+/ /;
 
mais ça fonctionne pas !!!!!!!!!!!!


Message édité par mouda le 23-02-2017 à 15:02:40
mood
Publicité
Posté le 23-02-2017 à 13:38:07  profilanswer
 

n°2296784
gilou
Modérateur
Modzilla
Posté le 23-02-2017 à 21:26:06  profilanswer
 

s/\n//g;
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --    In umbra igitur pugnabimus. --
n°2296792
mouda
Posté le 24-02-2017 à 00:22:27  profilanswer
 

aussi ça marche pas parce que si je fait  
while(<$fh> )  #pour un fichier  
$_=~ s/\n//g;  
 
lorsque je fait print il affiche ligne par ligne et ça reste toujours le problème de retour à la ligne

n°2296804
gilou
Modérateur
Modzilla
Posté le 24-02-2017 à 10:54:40  profilanswer
 

Quand on fait
while (<$fh> ) {
 s/\n//g;
...
}
ça supprime très bien les retours a la ligne, depuis que Perl existe.
Si ça marche pas pour vous, c'est que le problème est ailleurs.
 
Et de toute façon, pour supprimer un caractère fin de ligne, on fait habituellement en perl, quand c'est un fichier texte (donc terminé par une fin de ligne, sinon la dernière ligne poserait problème)
 
while (<$fh> ) {
 chop;
...
}
 
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --    In umbra igitur pugnabimus. --
n°2296810
mouda
Posté le 24-02-2017 à 12:39:35  profilanswer
 

ça marche pas toujours , voici la totalité du code:  

Code :
  1. my $FichierResulat = '/home/lenovo/Bureau/MesTravaux/Traitement_corpus/result2';
  2. open( my $FhResultat, '>:utf8', $FichierResulat );
  3.  
  4.  
  5.  
  6.  
  7.  
  8. open(my $fh, "<:utf8", '/home/lenovo/Bureau/MesTravaux/Traitement_corpus/essai') or die "Failed to open file: $!\n";
  9.  
  10.  
  11.  
  12. #open(my $fh, "<:utf8", $directory) or die "Failed to open file: $!\n";
  13. #open( my $FhResultat, '>:utf8', $FichierResulat ) or die "Failed to write file \n";
  14.  
  15.  
  16.  
  17. while(<$fh> ){
  18.  
  19.  
  20. #next if m/^$/;
  21.  
  22. $_ =~ s/\n/ /;
  23. #remplacer plusieurs ! par un seul
  24. $_ =~s/\!+/ /g;
  25. #Enlever ; et le ,
  26. $_ =~s/[;,:]/ /g;
  27. $_ =~s/\*+/ /g;
  28.  
  29. #supprimer point d'interrogation en arabe
  30.  
  31. $_ =~s/\x{061F}/ /g;
  32. #supprimer point virgule en arabe
  33. $_ =~s/\x{066C}/ /g;
  34.  
  35. $_ =~s/\x{066B}/ /g;
  36.  
  37. $_ =~s/\x{060C}/ /g;
  38. #supprimer les expressions regulieres
  39. $_ =~s/\,//g;
  40.  
  41. $_ =~s/\;//g;
  42. $_ =~s/\*//g;
  43. $_ =~s/\-//g;  
  44. $_ =~ s/\_//g;
  45. $_ =~s/\[//g;
  46. $_ =~s/\]//g;
  47. $_ =~s/\(//g;
  48. $_ =~s/\)//g;
  49. $_ =~s/\{//g;
  50. $_ =~s/\}//g;    
  51. $_ =~s/\'//g;
  52. #s/\"//g;
  53. $_ =~s/\&//g;
  54. $_ =~s/»//g;
  55. $_ =~s/»//g;
  56.  
  57. $_ =~s/&#1563;//g;
  58.  
  59. $_ =~s/\|//g;  
  60.  
  61. $_ =~s/\\//g;
  62. $_ =~s/\+//g;
  63. $_ =~s/://g;  
  64. #supprimer les deux points
  65. $_ =~s/\://g;
  66. #remplacer plusieurs points par un seul
  67. #$_ =~ s/\.+/ \. /g;
  68. #$_ =~ s/\.+/ \. /g;
  69. $_ =~s/\.+/ /g;
  70. $_ =~s/ +/ /g;
  71.  
  72. $_ =~s/\/\s+/ /g;
  73.  
  74.  
  75. #Supprimer toute combinaison d'espaces et tabulations
  76. $_ =~s/[ \t]+/ /g;
  77. #Remplacer plusieurs espaces par un seul
  78. $_ =~s/ +/ /g;
  79. #Supprimer les lignes vides
  80. $_ =~ s/^\s+//g;
  81. $_ =~ s/\n//g;
  82. $_ =~ s/\n$/ /gs;
  83.  
  84. print $FhResultat "$_";
  85.  
  86.  
  87.  
  88. }

n°2296833
gilou
Modérateur
Modzilla
Posté le 24-02-2017 à 22:27:22  profilanswer
 

while(<$fh> ) {
  chop;   # ou s/\x0d{0,1}\x0a{0,1}\Z//s;
  # a ce stade, il n'y a plus de caractères de fin de ligne
  # Apres vour remplacez par un blanc ce que vous voulez pas
   s/[!;,:+]+/ /g;
  # Apres vous supprimez ce que vous voulez
  s/[-_'&]+//g;
  # Etc
  # Et a la fin vous imprimez
  print $FhResultat $_;
}
 
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --    In umbra igitur pugnabimus. --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  supprimer retour à la ligne

 

Sujets relatifs
comparaison string perl[Perl] Arrêt traitement si doublons dans champ d'un fichier
[HTML] Open Graph : Facebook ne voit pas mon og:imageperl et page internet
[C#] Tableaux croisés dynamiques et Open XML[Perl] Récupérer une information dans un retour SOAP
Concatenation lignes[Perl] simplifier ma regex
[PERL] CGI retourner un code erreur[Perl] Can't call method "Open" on an undefined value
Plus de sujets relatifs à : supprimer retour à la ligne


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR