OVH Cloud OVH Cloud

Petit script (question)

1 réponse
Avatar
salus1
Hello,

J'ai deux fichiers.

Le premier est du genre

bonjour abcd
bonsoir efgh
salut ijkl
....

Le second est compose de colonnes separees par des ";" Dans les
champs, parfois je trouve un mot du premier fichier, parfois pas.

Comment faire pour que le second fichier soit traite par le premier?
Le script chercherait dans le second fichier a la recjerche des mots
qu'il connait par le premier fichier et remplacerait par la valeur
correspondante. S'il trouve "bonjour" dans un des champs, il remplace
par "abcd"

La taille des champs par ligne est aleatoire.

Comment faire cela?

Ce serait sur FreeBSD ou Linux

Merci pour vos aides,

Salus

1 réponse

Avatar
Stephane Chazelas
Tu peux utiliser awk :

awk '
BEGIN {
IFS=" "
while ((getline < "fichier1") > 0)
mot[$1] = $2
IFS=";"
}
{
for (i = 1; i <= NF; i++)
if ($i in mot)
$i = mot[$i]
print
}' < fichier2

Pas testé, mais tu as l'idée.

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]