Extraire numero ligne commun entre 2 fichiers
Résolu
varen
-
varenji Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
varenji Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je possede 2 fichiers contenant exactement les memes lignes. Dans le 2eme fichier, les lignes sont dans le desordre.
Je souhaite creer un 3eme fichier contenant les lignes du 1er fichier dans l'ordre (pas de changement) et a cote de chaque ligne (separer par un espace ou un truc du genre ..), le numero de ligne de la meme occurence dans le 2nd fichier.
Fichier 1 :
test_1
test_5
test_2
test_3
Fichier 2 :
test_5
test_3
test_1
test_2
Le fichier de sortie devrait ressembler a ca :
test_1 3
test_5 1
test_2 4
test_3 2
Je ne sais pas si c'est possible ! Votre aide me sera tres precieuse,
merci a vous.
Varen
je possede 2 fichiers contenant exactement les memes lignes. Dans le 2eme fichier, les lignes sont dans le desordre.
Je souhaite creer un 3eme fichier contenant les lignes du 1er fichier dans l'ordre (pas de changement) et a cote de chaque ligne (separer par un espace ou un truc du genre ..), le numero de ligne de la meme occurence dans le 2nd fichier.
Fichier 1 :
test_1
test_5
test_2
test_3
Fichier 2 :
test_5
test_3
test_1
test_2
Le fichier de sortie devrait ressembler a ca :
test_1 3
test_5 1
test_2 4
test_3 2
Je ne sais pas si c'est possible ! Votre aide me sera tres precieuse,
merci a vous.
Varen
A voir également:
- Extraire numero ligne commun entre 2 fichiers
- Extraire une video youtube - Guide
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Partager photos en ligne - Guide
- Extraire le son d'une vidéo - Guide
6 réponses
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 $
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.
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 $
;-))
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