Extraire numero ligne commun entre 2 fichiers
Résolu
varen
-
varenji Messages postés 2 Statut Membre -
varenji Messages postés 2 Statut Membre -
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
- Partager photos en ligne - Guide
- Extraire son video - Guide
- Numero prive - Guide
- Word numéro de page 1/2 - Guide
- Renommer des fichiers en masse - 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 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