|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 2 ![]() |
Bonjour à tous,
Je cherche à remplacer dans un fichier texte «</i>retour_a_la_ligne » par «;» en shell unix EXAMPLE : A partir de la séquence de lignes suivantes SeqNb1</i> SystemCode1</i> UsageCode1 SeqNb2</i> SystemCode2</i> UsageCode2 SeqNb3</i> SystemCode3</i> UsageCode3 Je voudrais obtenir ceci: SeqNb1;SystemCode1;UsageCode1 SeqNb2;SystemCode2;UsageCode2 SeqNb3;SystemCode3;UsageCode3 Pour le moment, je traite mes fichiers ligne par ligne (avec while… do) mais le problème est que cela prend beaucoup trop de temps (plus de 900000 lignes par fichier). J’ai bien essayé des commandes sed et autres mais sans résultat… Je cherche donc un moyen plus rapide avec un awk, sed … pour un traitement de "masse" des fichiers Merci pour votre aide |
|
|
00
|
|
|
#2 | ||||
|
Membre actif
![]() Inscription : novembre 2006 Messages : 194 ![]() |
EDIT: j'avais mal lu au départ
alors avec un foreach et un sed: regle.sed: Code :
Code :
|
||||
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 545 ![]() |
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 2 ![]() |
Merci pour ces réponses... c'est parfait.
La solution avec le join donne le résultat attendu et les fichiers sont traités en un rien de temps. Avec vi, il y a bien le remplacement très rapide de la chaîne de caractères mais je n'ai pas réussi à supprimer le retour à la ligne (que ce soit en rajoutant \n ou ^M)... Merci pour ces solutions efficaces et rapides |
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 545 ![]() |
Code :
vi -c "%s:</i>:;: | g/;/j |:wq" fichier ça doit marcher. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com