Voici un petit probl=E8me de shell.
Je souhaite lire deux fichiers s=E9quentiellement, simultan=E9ment dans
la m=EAme boucle.
En fran=E7ais dans le code :
Mais je risque d'avoir des probl=E8mes si je fais tourner mon shell en
parall=E8le pour traiter 2 fichiers diff=E9rents, non ?
Donc quelle m=E9thode employer plut=F4t que des File Descriptor ?
Je le note ! Dans ton exemple ci-dessus, ne vais-je pas relire tout file2 à chaque nouvelle ligne lue de file1 ? Mes fichiers sont gros, alors cela serait très pénalisant en termes de perfs, à mon avis.
-- Tittom
[...]
c'est en general une mauvaise idee de faire des boucles en
shell, surtout pour processer du texte. Utilise awk.
Je le note !
Dans ton exemple ci-dessus, ne vais-je pas relire tout file2 à chaque
nouvelle ligne lue de file1 ?
Mes fichiers sont gros, alors cela serait très pénalisant en termes
de perfs, à mon avis.
Je le note ! Dans ton exemple ci-dessus, ne vais-je pas relire tout file2 à chaque nouvelle ligne lue de file1 ? Mes fichiers sont gros, alors cela serait très pénalisant en termes de perfs, à mon avis.
-- Tittom
Laurent Wacrenier
Tittom écrit:
Voici un petit problème de shell. Je souhaite lire deux fichiers séquentiellement, simultanément dans la même boucle. En français dans le code :
Ca ne serait pas pour faire un tri, par hazard ?
Tittom <tittom@free.fr> écrit:
Voici un petit problème de shell.
Je souhaite lire deux fichiers séquentiellement, simultanément dans
la même boucle.
En français dans le code :
Mais je risque d'avoir des problèmes si je fais tourner mon shell en parallèle pour traiter 2 fichiers différents, non ? Donc quelle méthode employer plutôt que des File Descriptor ?
Non, car les file descriptors sont propres au processus.
Sur linux vois:
ls -l /proc/[0-9]*/fd/
-- __Pascal Bourguignon__ http://www.informatimago.com/ In deep sleep hear sound, Cat vomit hairball somewhere. Will find in morning.
Mais je risque d'avoir des problèmes si je fais tourner mon shell en
parallèle pour traiter 2 fichiers différents, non ?
Donc quelle méthode employer plutôt que des File Descriptor ?
Non, car les file descriptors sont propres au processus.
Sur linux vois:
ls -l /proc/[0-9]*/fd/
--
__Pascal Bourguignon__ http://www.informatimago.com/
In deep sleep hear sound,
Cat vomit hairball somewhere.
Will find in morning.
Mais je risque d'avoir des problèmes si je fais tourner mon shell en parallèle pour traiter 2 fichiers différents, non ? Donc quelle méthode employer plutôt que des File Descriptor ?
Non, car les file descriptors sont propres au processus.
Sur linux vois:
ls -l /proc/[0-9]*/fd/
-- __Pascal Bourguignon__ http://www.informatimago.com/ In deep sleep hear sound, Cat vomit hairball somewhere. Will find in morning.
Stephane Chazelas
2005-10-29, 02:05(-07), Tittom:
[...]
c'est en general une mauvaise idee de faire des boucles en shell, surtout pour processer du texte. Utilise awk.
Je le note ! Dans ton exemple ci-dessus, ne vais-je pas relire tout file2 à chaque nouvelle ligne lue de file1 ? [...]
Non, c'est la facon d'ouvrir et de lire les fichiers en awk. Le premier getline ouvre le fichier et lit la premiere ligne, les suivants appelés avec le meme chemin de fichier lisent les lignes suivantes. Il faut un close() pour fermer le fichier.
Mes fichiers sont gros, alors cela serait très pénalisant en termes de perfs, à mon avis. [...]
Ce qui serait penalisant, ca serait de le faire avec un shell qui appelerait plusieurs utilities par ligne de fichier.
-- Stéphane
2005-10-29, 02:05(-07), Tittom:
[...]
c'est en general une mauvaise idee de faire des boucles en
shell, surtout pour processer du texte. Utilise awk.
Je le note !
Dans ton exemple ci-dessus, ne vais-je pas relire tout file2 à chaque
nouvelle ligne lue de file1 ?
[...]
Non, c'est la facon d'ouvrir et de lire les fichiers en awk. Le
premier getline ouvre le fichier et lit la premiere ligne, les
suivants appelés avec le meme chemin de fichier lisent les
lignes suivantes. Il faut un close() pour fermer le fichier.
Mes fichiers sont gros, alors cela serait très pénalisant en termes
de perfs, à mon avis.
[...]
Ce qui serait penalisant, ca serait de le faire avec un shell
qui appelerait plusieurs utilities par ligne de fichier.
Je le note ! Dans ton exemple ci-dessus, ne vais-je pas relire tout file2 à chaque nouvelle ligne lue de file1 ? [...]
Non, c'est la facon d'ouvrir et de lire les fichiers en awk. Le premier getline ouvre le fichier et lit la premiere ligne, les suivants appelés avec le meme chemin de fichier lisent les lignes suivantes. Il faut un close() pour fermer le fichier.
Mes fichiers sont gros, alors cela serait très pénalisant en termes de perfs, à mon avis. [...]
Ce qui serait penalisant, ca serait de le faire avec un shell qui appelerait plusieurs utilities par ligne de fichier.
-- Stéphane
Tittom
Stephane Chazelas wrote:
Non, c'est la facon d'ouvrir et de lire les fichiers en awk. Le premier getline ouvre le fichier et lit la premiere ligne, les suivants appelés avec le meme chemin de fichier lisent les lignes suivantes. Il faut un close() pour fermer le fichier.
Ok vu, j'ai fait quelques tests :)
Mes fichiers sont gros, alors cela serait très pénalisant en termes de perfs, à mon avis. [...]
Ce qui serait penalisant, ca serait de le faire avec un shell qui appelerait plusieurs utilities par ligne de fichier.
En effet, et au vu des tests awk que j'ai fait, awk fairait pleinement mon affaire.
Merci, beaucoup.
Stephane Chazelas wrote:
Non, c'est la facon d'ouvrir et de lire les fichiers en awk. Le
premier getline ouvre le fichier et lit la premiere ligne, les
suivants appelés avec le meme chemin de fichier lisent les
lignes suivantes. Il faut un close() pour fermer le fichier.
Ok vu, j'ai fait quelques tests :)
Mes fichiers sont gros, alors cela serait très pénalisant en termes
de perfs, à mon avis.
[...]
Ce qui serait penalisant, ca serait de le faire avec un shell
qui appelerait plusieurs utilities par ligne de fichier.
En effet, et au vu des tests awk que j'ai fait, awk fairait pleinement
mon affaire.
Non, c'est la facon d'ouvrir et de lire les fichiers en awk. Le premier getline ouvre le fichier et lit la premiere ligne, les suivants appelés avec le meme chemin de fichier lisent les lignes suivantes. Il faut un close() pour fermer le fichier.
Ok vu, j'ai fait quelques tests :)
Mes fichiers sont gros, alors cela serait très pénalisant en termes de perfs, à mon avis. [...]
Ce qui serait penalisant, ca serait de le faire avec un shell qui appelerait plusieurs utilities par ligne de fichier.
En effet, et au vu des tests awk que j'ai fait, awk fairait pleinement mon affaire.
Merci, beaucoup.
Tittom
Laurent Wacrenier wrote:
Tittom écrit:
Voici un petit problème de shell. Je souhaite lire deux fichiers séquentiellement, simultanément dans la même boucle. En français dans le code :
Ca ne serait pas pour faire un tri, par hazard ?
Non. C'est pour réaliser des comparaisons sur des fichiers déjà triés, avec un rapport détaillé des écarts champs par champs, que je n'arrive pas à obtenir avec diff ni comm.
Laurent Wacrenier wrote:
Tittom <tittom@free.fr> écrit:
Voici un petit problème de shell.
Je souhaite lire deux fichiers séquentiellement, simultanément dans
la même boucle.
En français dans le code :
Ca ne serait pas pour faire un tri, par hazard ?
Non.
C'est pour réaliser des comparaisons sur des fichiers déjà triés,
avec un rapport détaillé des écarts champs par champs, que je
n'arrive pas à obtenir avec diff ni comm.
Voici un petit problème de shell. Je souhaite lire deux fichiers séquentiellement, simultanément dans la même boucle. En français dans le code :
Ca ne serait pas pour faire un tri, par hazard ?
Non. C'est pour réaliser des comparaisons sur des fichiers déjà triés, avec un rapport détaillé des écarts champs par champs, que je n'arrive pas à obtenir avec diff ni comm.