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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Utilisation avancée de Sed et Occurences

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utilisation avancée de Sed et Occurences

n°1186146
Xlm_Tadeus
Posté le 15-12-2009 à 11:57:12  profilanswer
 

Bonjour,  
 
J'ai beau cherché dans la doc et les options de sed, je ne trouve pas de solution... :/
 
J'ai un fichier texte qui n'a qu'une seule ligne. Je dois remplacer toutes les 3 occurences du caractère ";", ce même caractère par le caractère \n.
 
Pour le moment, la seule solution que j'ai mais qui ne convient pas (trop lent) est de boucler sur sed:

Citation :

#!/bin/sh
i=1
sed -i 's/;/\n/1' xxx.txt
while [ $i -le 8000000 ]
do
   echo $i
   sed -i 's/;/\n/3' xxx.txt
   i=`expr $i +1`
done


 
 
Avez vous une petite idée de comment faire avancer le schmilblick ? :)
 
Merci d'avance :)

mood
Publicité
Posté le 15-12-2009 à 11:57:12  profilanswer
 

n°1186151
*syl*
--> []
Posté le 15-12-2009 à 12:17:36  profilanswer
 

$ cat a
a;b;c;d;e;f;g;h;i;j;k
aa;bb;cc;dd;ee;
 
$ sed -r 's/(([^;]+;){3})/\1\n/g' a
a;b;c
d;e;f
g;h;i
j;k
aa;bb;cc;
dd;ee;


Edit : oubli du dernier « + », j'en ai profité pour réduire le bouzin :o


Message édité par *syl* le 18-12-2009 à 12:47:33
n°1186184
Xlm_Tadeus
Posté le 15-12-2009 à 14:11:17  profilanswer
 

Nickel, merci à toi ;)
 
Edit: en faite nan, le truc se plante :(
 

Citation :

1;8;32944;2
10;33062;3
14;55690;4
14;33233;5
17;33608;6
20;33007;7
23;32850;8
23;40732;9
28;24318;10;28;31098;11;28;101492;12;30;72119;13;31;72130;14;34;20504;15;34;19725;16;37;30634;17;40;51301;18;48;26349;19;5
0;24334;20;50;35465;21;54;33008;22;57;25507;23;61;30288;24;62;30288;25;63;30288;26;67;30288;27;68;30288;28;69;30288;29;71;
31580;30;88;32944;31;90;33062;32;94;


Citation :


 
b00_cmnt_kb00' to 'PUBLIC' as 'CREATOR'__|____|__<!DATA!>__|__1170853__|__3__|__id_ordre__|__id_kb00__|__id_cmnt_kb00__|__
1;8;32944;2;10;33062;3;14;55690;4;14;33233;5;17;33608;6;20;33007;7;23;32850;8;23;40732;9;28;24318;10;28;31098;11;28;101492
;12;30;72119;13;31;72130;14;34;20504;15;34;19725;16;37;30634;17;40;51301;18;48;26349;19;50;24334;20;50;35465;21;54;33008;2
2;57;25507;23;61;30288;24;62;30288;25;63;30288;26;67;30288;27;68;30288;28;69;30288;29;71;31580;30;88;32944;31;90;33062;32;
94;55690;33;94;33233;34;94;103209;35;94;33007;36;97;32850;37;97;40732;38;102;24318;39;102;31098;40;102;101492;41;104;72119
;42;105;72130;43;108;20504;44;108;19725;45;111;30634;46;114;51301;47;122;26349;48;124;24334;49;124;35465;50;132;25507;51;1
36;30288;52;137;30288;53;138;30288;54;142;30288;55;143;30288;56;144;30288;57;146;31580;58;169;25438;59;175;22474;60;191;33
255;61;193;70887;62;198;68198;63;202;69823;64;206;70446;65;217;71184;66;218;71423;67;219;71326;68;220;69877;69;221;70643;7
0;229;6


 
je vois pas pourquoi pourtant :/

Message cité 1 fois
Message édité par Xlm_Tadeus le 15-12-2009 à 15:38:22
n°1186793
Ttienne
C'est pas pour me vanter, mais
Posté le 18-12-2009 à 10:05:47  profilanswer
 

Code :
  1. tr ";" "\n" < monFichier > fichierResultat


Je sais, c'est pas avec sed; mais ça sera plus rapide.

Message cité 1 fois
Message édité par Ttienne le 18-12-2009 à 10:25:28

---------------
Y a de la bière, sur Véga, hein ? Si y'en a pas, on y va pas ! Et pis c'est tout ! :P | c'est vendu depuis lgtps
n°1186823
*syl*
--&gt; []
Posté le 18-12-2009 à 12:33:47  profilanswer
 

Xlm_Tadeus a écrit :

Nickel, merci à toi ;)
 
Edit: en faite nan, le truc se plante :(
 
je vois pas pourquoi pourtant :/

T'aurais pu ouvrir tes yeux, il manquait juste un « + », j'ai corrigé dans mon premier post et j'en ai profité pour réduire le bouzin :D
 

Ttienne a écrit :

Code :
  1. tr ";" "\n" < monFichier > fichierResultat


Je sais, c'est pas avec sed; mais ça sera plus rapide.

Ça fait pas ce qui est demandé...

Message cité 1 fois
Message édité par *syl* le 18-12-2009 à 12:47:57
n°1186940
Ttienne
C'est pas pour me vanter, mais
Posté le 19-12-2009 à 09:34:02  profilanswer
 

*syl* a écrit :

Ça fait pas ce qui est demandé...

Ah oui le chiffre 3 m'a mystérieusement échappé  
...  [:jsuistropcon]


---------------
Y a de la bière, sur Véga, hein ? Si y'en a pas, on y va pas ! Et pis c'est tout ! :P | c'est vendu depuis lgtps

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

  Utilisation avancée de Sed et Occurences

 

Sujets relatifs
Quel os choisir (utilisation netbook) très vieux pcprobleme d'utilisation de php5 sous kubuntu 9.04 et apache2
resolu [XEN] utilisation de plusieurs cartes reseaux physiques debian5[Divers] KmidiMon est un moniteur MIDI pour Gnu/Linux : Utilisation
Utilisation de UbuntuUbuntu 9.04 sur portable : forcer l'utilisation unique du second écran
[Kubuntu 9.04] : Utilisation du module plasmaUtilisation de DiskDrake / Primaire
Utilisation disque, redirection réseaux en ramAide pour une commande AWK (ou SED) (ou autre)
Plus de sujets relatifs à : Utilisation avancée de Sed et Occurences


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