Extraire numero ligne commun entre 2 fichiers
Résolu/Fermé
varen
-
Modifié par varen le 23/09/2011 à 14:33
varenji Messages postés 1 Date d'inscription vendredi 23 septembre 2011 Statut Membre Dernière intervention 23 septembre 2011 - 23 sept. 2011 à 15:58
varenji Messages postés 1 Date d'inscription vendredi 23 septembre 2011 Statut Membre Dernière intervention 23 septembre 2011 - 23 sept. 2011 à 15:58
A voir également:
- Extraire numero ligne commun entre 2 fichiers
- Numero prive - Guide
- Extraire video youtube - Guide
- Site de vente en ligne gratuit entre particulier - Guide
- Word numéro de page 1/2 - Guide
- Extraire son video - Guide
6 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
23 sept. 2011 à 15:27
23 sept. 2011 à 15:27
Alors comme ça :
$ while read line; do echo -n "$line " && sed -n "/$line/=" fich2; done < fich1 test_1 3 test_5 1 test_2 4 test_3 2 $
koma_666
Messages postés
429
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 mai 2016
34
23 sept. 2011 à 14:28
23 sept. 2011 à 14:28
Oui, je pense que cela est réalisable. Il faudrait que pour chaque position du fichier tu associes un nombre, et après, avec une comparaison avec le fichier 1, tu lui ajoutes la position.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
23 sept. 2011 à 14:34
23 sept. 2011 à 14:34
Salut,
Avec "fgrep" c'est possible mais, l'ordre du fichier 1 n'est pas respecté et le numéro apparaît avant et non après ;-\
;-))
Avec "fgrep" c'est possible mais, l'ordre du fichier 1 n'est pas respecté et le numéro apparaît avant et non après ;-\
$ cat fich1 test_1 test_5 test_2 test_3 $ cat fich2 test_5 test_3 test_1 test_2 $ fgrep -n -f fich1 fich2 1:test_5 2:test_3 3:test_1 4:test_2 $
;-))
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
23 sept. 2011 à 15:17
23 sept. 2011 à 15:17
Salut,
avec Bash, nl, grep et sed, et un fichier temporaire, on peut faire celà :
on devrait pouvoir se passer du fichier temporaire aussi, mais bon :-)
Dal
avec Bash, nl, grep et sed, et un fichier temporaire, on peut faire celà :
$ nl -n rz fichier2 > fichier2_num ; cat fichier1 | while read ligne; do echo -n "$ligne "; grep $ligne fichier2_num | sed -e 's/\t.*$//'; done ; rm fichier2_num test_1 000003 test_5 000001 test_2 000004 test_3 000002
on devrait pouvoir se passer du fichier temporaire aussi, mais bon :-)
Dal
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
23 sept. 2011 à 15:45
23 sept. 2011 à 15:45
hello
$ cat a1 test_1 test_5 test_2 test_3 $ cat a2 test_5 test_3 test_1 test_2 $ $ awk 'BEGIN{while("cat a2"|getline)x[$0]=++n};{print $0, x[$0]}' a1 test_1 3 test_5 1 test_2 4 test_3 2 $
varenji
Messages postés
1
Date d'inscription
vendredi 23 septembre 2011
Statut
Membre
Dernière intervention
23 septembre 2011
23 sept. 2011 à 15:58
23 sept. 2011 à 15:58
Merci pour vos reponses !
C'est tres sympa a vous !
A bientot !
varen
C'est tres sympa a vous !
A bientot !
varen