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 à 16:40:11
change de titre de sujet deja je pense , quand je l'ai ouvert , j'avais envie de repondre directement "man sed" ^^
Marsh Posté le 06-04-2009 à 15:36:01
Bonjour tout le monde !
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