Bonjour, j'ai un pb de base mais que je n'arrive pas à résoudre avec un script shell et awk
J'ai deux fichiers
fichier a
1
3
fichier b
1 toto
2 titi
3 tata
4 tutu
Je veux avec les numéros contenus dans le fichier a, récupérer les lignes du fichier b en utilisant les valeurs de la première colonne du fichier b et créer ainsi un fichier c qui sera comme ça:
1 toto
3 tata
je veux utiliser awk (car un grep sous shell ne me convient pas si dans mon fichier b j'ai des colonnes avec des valeurs 10,11; car le grep me sortira aussi c'est valeur car il recherche du texte et non des nombres)
j'ai tenté le coup avec une boucle
"for var in tableau"
recherche du texte par awk
mais je n'arrive pas à créer un tableau en le remplissant par les valeurs du fichier a
Est ce que quelqu'un pourrait me donner la solution, cela fait deux jours que je sèche !!!!
Merci
Mick
# grep ??
Posté par JJD . Évalué à 3.
[^] # Re: grep ??
Posté par mickhyax . Évalué à 1.
1 toto
2 tata
3 titi
4 tutu
10 tyty
et que mon fichier a contient
1
3
si tu fais un grep il te sort
1 toto
3 titi
10 tyty
car grep fait une recherche sur le texte et pas en tenant compte que ta variable i dans ta boucle est un nombre
Mick
[^] # Re: grep ??
Posté par Kaplan Kim Minh . Évalué à 1.
[^] # Re: grep ??
Posté par mickhyax . Évalué à 1.
de plus l'autre solution [^0-9] elle n'est valable que pour des chiffres entre 0 et 9 ?
si maintenant j'ai dans mon fichier a
1
61
101
et dans mon fichier b
1
2
3
59
61
100
101
est ce que ta solution va marcher ?
Mick
[^] # Re: grep ??
Posté par Kaplan Kim Minh . Évalué à 2.
$ while read n; do grep "^$n[^0-9]\\|^$n\$" b; done <a
1
61
101
Ceci dit je suis heureux de découvrir join... Merci.
# commande qui existe "join"
Posté par FReEDoM (site web personnel) . Évalué à 6.
:)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.