Forum Programmation.shell substituer des termes d'un fichier par leurs numéros dans un autre fichier (grep,sed, awk,...)

Posté par  .
Étiquettes :
-4
8
déc.
2012

Bonsoir à tous,

je voudrais solliciter votre aide si vous voulez bien. Je voudrais remplacer les mots qui apparaissent dans un fichier par leurs numéros définis dans un autre fichier. Le problème c'est que les remplacer manuellement me prends un temps considérable.

J'ai un fichier "fich1" contenant un ensemble de mots et leurs numéros chaque ligne contient un numéro et un mot.
exemple:

1 Eicosatrienoic Acid
2 Abdomen
3 Absorption
4 Academies and Institutes
5 Acceleration
6 Accidents
7 Acetates
8 Acids
9 Acylation

J'ai un autre fichier "fich2" contenant un ensemble de mots.
Exemple:

Acceleration
Accidents
Acetates

Je voudrais remplacer les mots qui apparaissent dans fich2 par leurs numéros définis dans fish1.
donc :

7
8
9

Merci à l'avance

  • # et en perl ?

    Posté par  (site web personnel) . Évalué à 2.

    Tu lis ton premier fichier, tu popules une table de hachage avec le mot pour clé et le n° pour valeur, tu ouvres le deuxième fichier et tu remplaces les lignes par $hash{$ligne}

    C'est pas du shell mais ça devrait faire l'affaire, non ?

    Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.

  • # join

    Posté par  (site web personnel) . Évalué à 6.

    En admettant que fich2 soit trié :

    join -o 1.1 -1 2 -2 1 <(sort -k2 fich1) fich2

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # Encore un étudiant qui nous demande de faire ses devoirs ???

    Posté par  . Évalué à 7.

    En tout cas ça y ressemble beaucoup :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.