• # Si tu peux utiliser autre chose que le shell...

    Posté par (site web personnel) . En réponse au message Suppression massive de lignes. Évalué à 3.

    J'avais commencé par un remlines.py
    #!/bin/env python
    # -*- coding: ascii -*-

    def remlines(fin,fref,fout) :
    ....lines_to_remove = set(iter(open(fref)))
    ....fin_file = open(fin)
    ....fout_file = open(fout,"w")
    ....for line in fin_file :
    ........if not line in lines_to_remove :
    ........fout_file.write(line)
    ....fout_file.close()
    ....fin_file.close()

    if __name__ == "__main__" :
    ....import sys
    ....remlines(sys.argv[1],sys.argv[2],sys.argv[3])

    (j'ai mis des . en début de ligne à la place des espaces because indentation en Python)
    Qui supprime les lignes de f2 que l'on trouve exactement dans f1.

    Mais j'ai vu ta petite précision les fichiers f1 et f2 ne contiennent pas les memes donnees et les discussions... bref tu recherche pour chaque ligne de f1 si elle contient une des lignes de f2... Ca serait bien le boulot d'une jolie expression régulière avec f2[0] | f2[1] | f2[3]... compilée en mémoire, et appliquée à chacune des lignes de f1. Ca peut se faire en Python (modulo peut-être la longueur d'une telle expression), mais il me semble que ce genre de traitement est le domaine naturel de Perl.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN