[manipulation textes] perl vs python vs shell

Résolu/Fermé
sheol - 21 déc. 2007 à 08:05
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 21 déc. 2007 à 09:58
Bonjour,

Dans le cadre de mon travail, j'ai régulièrement à analyser des fichiers textes très complexes, pas forcément formatés très précisément, de plusieurs millier de lignes.

Dans ce contexte j'utilise pour l'instant pas mal de scripts shell. sed grep et sort sont mes amis. :P
Je me débrouille de mieux en mieux en shell, mais certains collègues utilisent perl.
Après m'être renseigné un peu, je n'arrive pas à savoir quel est le langage le plus adapté à ce type d'utilisation.

Juste manipulation de fichiers textes très complexes et calculs issus de ces fichiers (genre tout bêtement ligne 3 colonne 1 + ligne 4 colonne 2). Je ne connais pas grand chose à la programmation, à part en Fortran ou j'ai quelques bases mais pour du calcul scientifique (rien à voir avec de l'édition de fichiers).

Sachant que je suis loin de gérer parfaitement awk par exemple, mieux vaut-il rester purement scripts shell en poussant un peu plus et me forçant à utiliser des outils comme awk, ou passer à un langage python ou perl ?


Merci de m'avoir lu jusqu'au bout ! :-))
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
21 déc. 2007 à 09:58
Salut,

Chaque langage a ses spécificités qu'il faut connaitre afin d'opter pour le traitement le plus adapté à ses besoins.

Sed est un éditeur de lignes (Stream Editor), plus particulièrement adapté au traitement et manipulations (remplacement, suppression de chaines de caractères) ligne par ligne, bien qu'il puisse aussi traiter des lignes consécutives grace à ses mémoires tampons, mais pas très intuitif pour des traitements complexes. Ce n'est pas à vrai dire un langage de programmation, mais plus un outil à utiliser en complément du shell par exemple.

Awk est un éditeur de champs (mais pas seulement), beaucoup plus puissant que "sed", qui travaille lui aussi sur des lignes en entrée mais possédant une syntaxe proche des langages de programmation (fonctions, tableaux, opérations mathématiques, etc.).

Perl quant à lui n'est autre que la réunion des 2 outils précédents avec des briques de C et de shell (à l'origine ce devait être une simple extension de awk). Il est donc plus complet et beaucoup plus puissant que sed et awk, et à ce titre possède toutes les qualités d'un langage de programmation.

Python je connais pas du tout, sebsauvage (s'il passe dans le coin) t'en parleras surement beaucoup mieux que moi et t'en ventera tous les mérites à juste titre.

;-))
3
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
21 déc. 2007 à 09:18
Bonjour,

Pour travailler sur du texte : c'est Perl !!!

:-))
0