remplacer rapidement des mots d'un fichier par ceux d'un autre fichier

remplacer rapidement des mots d'un fichier par ceux d'un autre fichier - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 06-04-2009 à 15:36:01    

Bonjour tout le monde !  :hello:  
 
J'ai un fichier F1 :
robert "10.1.2.3"
anne "10.4.5.6"
nadine "10.7.8.9"
 
Et un fichier F2 :
robert est fort mais anne aussi et nadine je ne sais pas
 
J'aimerais avoir :
"10.1.2.3" est fort mais "10.4.5.6" aussi et "10.7.8.9" je ne sais pas
 
J'ai utiliser le script suivant :
cat F1 | awk 'BEGIN {while("cat F2" | getline) tab[$1]=$2;}{
 for (n in tab) {gsub(n,tab[n]);}}{
        print $0
}'
 
Le problème c'est que quand j'ai des fichiers de plusieurs millions de lignes ça prend énormément de temps...  
J'ai pensé à "sed" mais je ne sais pas comment l'intégrer...
Pouvez-vous me conseillez quelque chose qui puisse "optimiser" mon script pour qu'il soit rapide ?
 
Merci


Message édité par motard75 le 06-04-2009 à 16:41:51
Reply

Marsh Posté le 06-04-2009 à 15:36:01   

Reply

Marsh Posté le 06-04-2009 à 16:40:11    

change de titre de sujet deja je pense , quand je l'ai ouvert , j'avais envie de repondre directement "man sed" ^^

Reply

Marsh Posté le 07-04-2009 à 19:09:46    

un bout de perl

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed