IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Rechercher / remplacer rapidement du texte


Sujet :

Shell et commandes GNU

  1. #41
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bah, plus haut, j'ai fourni un petit script "one-liner" perl qui fait aussi le boulot tel que le dd + sed + dd
    C'est vrai, et il est très rapide.

    Pour le fun, j'ai fait des mesures comparant les diverses solutions proposées dans cette discussion avec le jeu de test de BufferBob (8 fichier de 1 à 8 Go avec chacun 200 "bouzin" dans la première ligne) dont voici les résultats:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    méthode        secondes  gain
    sed-i            832.81     1
    grep-echo        282.55     2.95
    grep-m1-echo       8.15   102
    dd-sed-dd          0.76  1095
    dd-pipeline        0.58  1435
    perl               0.58  1435
    stdio              0.52  1601
    syscalls           0.51  1632
    Le grep qui lit tout le fichier va déjà trois fois plus vite que le sed -i initial qui lit et écrit tout le fichier.
    Avec l'optimisation qui consiste à s'arrêter à la première occurrence de la chaîne recherchée, le programme va cent fois plus vite que le sed -i initial.
    Le dd puis sed puis dd avec utilisation d'un fichier temporaire va plus de mille fois plus vite que le sed -i.
    L'optimisation qui consiste à utiliser un pipeline plutôt que le fichier temporaire permet de gagner encore 30% supplémentaires (j'ai sous estimé ce gain en parlant de microsecondes, on gagne 42 ms par itération)..
    Le script perl fait jeu égal avec le pipeline.

    J'ai ajouté deux programmes en C pour évaluer la vitesse maximale possible, le premier utilise les entrées sorties de la bibliothèque standard C et il permet de gagner 11%. En utilisant directement les appels systèmes pour accéder aux fichier, on ne gagne que 2% supplémentaires.

    Je laisse aux volontaires le codage en assembleur
    ɹǝsn *sıɹɐlos*

  2. #42
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    ah ben j'aurais appris un truc
    [HS]Si tu veux en apprendre un deuxième, tu peux remplacer par "j'aurai appris un truc"!
    C'est du futur antérieur et non du conditionnel.
    Pour t'en convaincre (si besoin), tu peux essayer au pluriel ou à la 3ème personne, comme "ben on aura appris un truc" plutôt que "ben on aurait appris un truc", non?
    [/HS]

  3. #43
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    nianiania
    le pire c'est que je l'ai vue le jour où je l'ai faite et j'ai eu la flemme d'éditer juste pour ça, me disant que dans le volume de fotes qui transitent sur le site ça passerait inaperçu ou qu'on m'en ferait grâce

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Rechercher/remplacer, supprimer du texte
    Par Vinceoreste dans le forum Excel
    Réponses: 6
    Dernier message: 03/05/2018, 14h38
  2. Recherche/Remplacement dans un texte
    Par John Fullspeed dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 09/02/2013, 12h00
  3. Réponses: 8
    Dernier message: 12/11/2007, 10h16
  4. [RegEx] Remplacement rapide dans un fichier texte (RTF)
    Par johweb dans le forum Langage
    Réponses: 12
    Dernier message: 17/01/2007, 09h04
  5. Réponses: 4
    Dernier message: 12/10/2006, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo