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

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Comment faire un retour à la ligne dans un fichier texte sur un signe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment faire un retour à la ligne dans un fichier texte sur un signe

n°199633
qdm
Posté le 07-12-2002 à 01:20:42  profilanswer
 

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

mood
Publicité
Posté le 07-12-2002 à 01:20:42  profilanswer
 

n°199648
robotnikta​reum
au moins...
Posté le 07-12-2002 à 11:04:16  profilanswer
 

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:


---------------
si t déçu d'être dessous, tu iras dessus kom ça tu seras plus déçu ni dessous... Si tu piges pas c ke t saoul, c sûr...
n°199666
Sartene
Posté le 07-12-2002 à 12:01:14  profilanswer
 

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...


Message édité par Sartene le 07-12-2002 à 12:03:56
n°199670
Sartene
Posté le 07-12-2002 à 12:08:15  profilanswer
 

bon je trouve pas...
 
On peut utiliser awk ou sed evidemment pour ca:
 
sed -e 's/caractere/\n/g' fichier
 
Ca devrait marcher...

n°199728
qdm
Posté le 07-12-2002 à 14:58:07  profilanswer
 

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

n°199731
Sartene
Posté le 07-12-2002 à 15:15:56  profilanswer
 

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 ?

n°199732
Sartene
Posté le 07-12-2002 à 15:16:43  profilanswer
 

D'ailleurs essaie sans la -e, juste sed 's/caractere/\n/' fichier

n°199734
Sartene
Posté le 07-12-2002 à 15:20:12  profilanswer
 

Ou encore avec tr:
tr "caractere" "\n" < fichier

n°199763
qdm
Posté le 07-12-2002 à 16:43:39  profilanswer
 

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:

n°199766
Sartene
Posté le 07-12-2002 à 16:57:52  profilanswer
 

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]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  Comment faire un retour à la ligne dans un fichier texte sur un signe

 

Sujets relatifs
[Linux - Bash] Commande pour tester si un fichier existeGnome et fichier compressé ?
[q bête] copier/coller d'un doc PDF à un doc texte[perl] exécution d'un fichier qui se situe en dehors du script pl
Help needed - rentrer un fichier dans un .tgz[emacs] régler la longueur des indentations (tab) + afficher n° ligne
[linux] Suppression de lignes dans un fichiercomment splitter un gros fichier mpeg??
utiliser pine en ligne commandebutineur mode texte
Plus de sujets relatifs à : Comment faire un retour à la ligne dans un fichier texte sur un signe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR