remplacer des mots d'un fichier F1 par ceux d'un fichier F2 - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 12-02-2009 à 10:01:03
Tu fais un script awk qui parse le fichier F1. Dans le bloc BEGIN, tu parse le fichier F2 grace à la fonction getline(), et tu génère un tableau de correspondances toto => Michel, titi => Anne. Ensuite pour chaque ligne de F1, tu fais une substitution pour chaque entrée du tableau.
Marsh Posté le 12-02-2009 à 11:54:16
Merci, voilà ce que j'ai :
$ cat 1 |
awk 'BEGIN {while("cat 2" | getline) tab[$1]=$2;}
{for (n in tab) print tab[n]}'
Par contre la dernière étape je ne vois pas trop... Serait-ce "sed "s/tab[$1]/tab[$2]/g" qu'il faut faire ? Si oui il ne prendra que la dernière substitution... C'est là que je bloque.
Merci en tout cas..
Marsh Posté le 12-02-2009 à 12:39:45
Mais non, tu fais la substitution directement dans awk avec un gsub().
Marsh Posté le 11-02-2009 à 18:10:41
Bonjour à toutes et à tous !
J'ai un fichier F1 :
toto est fort et titi aussi
titi est grande
J'ai un fichier F2 :
toto Michel
titi Anne
J'ai envi d'avoir :
Michel est fort et Anne aussi
Anne est grande
Je me dit qu'il faut regrouper sed et awk... Mais je ne vois pas...
Pouvez-vous m'aider ? J'ai du mal...
Merci.