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

 


Dernière réponse
Sujet : Comment faire un retour à la ligne dans un fichier texte sur un signe
Sartene De rien...
 
le [ est peut etre interprete par tr, essaie au cas ou, en rajoutant le caractere d'ehappement avant:
 
tr "\[" "\[\n" fichier
 
ou un truc du genre...
 
 [:totoz6]

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Sartene De rien...
 
le [ est peut etre interprete par tr, essaie au cas ou, en rajoutant le caractere d'ehappement avant:
 
tr "\[" "\[\n" fichier
 
ou un truc du genre...
 
 [:totoz6]
qdm Avec sed ça ne marche toujours pas mais avec tr si. Il m'a sucré mes [ (en faisant le remplacement par [\n il refuse) mais c'est pas grave l'essentiel est fait.
 
Merci beaucoup  :hello:
Sartene Ou encore avec tr:
tr "caractere" "\n" < fichier
Sartene D'ailleurs essaie sans la -e, juste sed 's/caractere/\n/' fichier
Sartene

qdm a écrit :

Merci. Ceci dit le méchant me répond :
 
sed: -e expression #1, char 8: Unterminated `s' command
 


 
As tu bien mis les bons quotes ' (touche 4 en clavier azerty) au debut et a la fin ?

qdm Merci. Ceci dit le méchant me répond :
 
sed: -e expression #1, char 8: Unterminated `s' command
Sartene bon je trouve pas...
 
On peut utiliser awk ou sed evidemment pour ca:
 
sed -e 's/caractere/\n/g' fichier
 
Ca devrait marcher...
Sartene pas la peine de le faire en C...
 
Sous vi, tapes en mode commande:
:1s/caractere/\n/g
 
1 c'est le numero de la ligne a copier...
 
Le \n je sais plus, c'est un caractere special, je cherche et je reposte...
robotniktareum

qdm a écrit :

J'ai un fichier texte qui se présente sur une seule très longue ligne. J'aimerais qu'à chaque fois qu'il y a un [ , soit inséré un retour chariot. Quelle commande est capable de faire ça ?
 
Merci d'avance

fé-le en C...
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char ** argv)
  4. {
  5. FILE * f1, f2;
  6. char* srcfile=argv[1];
  7. char* destfile=argv[2];
  8. char tmp;
  9. char insert='\n';
  10. if((f1=open(filename, O_RDONLY))==0)
  11. {
  12.  perror ("open" );
  13.  exit(-1);
  14. }
  15. if((f1=open(filename, O_WRONLY|O_CREAT|O_EXCL))==0)
  16. {
  17.  perror ("open" );
  18.  exit(-1);
  19. }
  20. while((tmp=read(f,&tmp,sizeof(char))!=0)
  21. {
  22.  write(f2,&tmp,sizeof(char));
  23.  if(tmp=='[')
  24.   write(f2,&insert,sizeof(char));
  25. }
  26. close(f1);
  27. close(f2);
  28. }

G tapé ce code à l'arrache, je ne suis pas certain qu'il fonctionne bien. Entr'autres, j'ai oublié de faire des tests sur les read et les write et il manque peut-être des includes. Tu compiles ton programme et tu mets en paramètre le nom du fichier à modifier puis le nom du fichier à écrire avec les modifications.
Tu peux le compiler avec la commande :
 

gcc -o retourchariot retourchariot.c

J'espère t'avoir aidé  :hello:

qdm J'ai un fichier texte qui se présente sur une seule très longue ligne. J'aimerais qu'à chaque fois qu'il y a un [ , soit inséré un retour chariot. Quelle commande est capable de faire ça ?
 
Merci d'avance

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)