2012-12-24 4 views

Répondre

0

Si vous essayez de traiter un certain nombre de fichiers, vous pouvez utiliser l'étape Obtenir le nom de fichier pour obtenir tous les noms de fichiers. Ensuite, si vos fichiers texte sont petits, vous pouvez utiliser l'étape Obtenir le contenu du fichier pour obtenir le fichier entier en une seule ligne, puis utiliser un filtre Java ou une autre étape correspondante (RegEx, par exemple) pour rechercher les mots. Si vos fichiers texte sont trop volumineux mais en ligne ou dans un format fixe (ce qui est probablement le cas si vous avez utilisé une étape de sortie de fichier texte), vous pouvez utiliser une étape de saisie de fichier texte pour obtenir les lignes. (voir ci-dessus) pour trouver les mots dans la ligne. Vous pouvez ensuite utiliser une étape Filtrer les lignes pour sélectionner uniquement les lignes contenant les mots, puis Sélectionner les valeurs pour choisir uniquement le nom de fichier, puis une ligne de tri sur le nom de fichier, puis une étape Lignes uniques. Le résultat devrait être une liste de noms de fichiers dont le contenu contient les mots de recherche. Cela peut sembler beaucoup d'étapes, mais Pentaho Data Integration ou PDI (aka Kettle) est conçu pour être un flux d'étapes avec des fonctionnalités distinctes (et très réutilisables). Une méthode plus petite mais moins "PDI" consiste à écrire une étape Java définie par l'utilisateur (ou autre script) pour faire tout le travail. Cette solution a un plus petit nombre d'étapes mais n'est pas très configurable ou réutilisable.

+0

il n'y a pas d'étape appelée get content – Cynosure

+0

Je pense que @mattb_pdi faisait référence à 'Load file content in memory'. C'est sur la branche d'entrée. –

+0

Oui Charger le contenu du fichier en mémoire Etape travaillée pour moi – Cynosure

0

Si vous écrivez vous-même ces fichiers, ne connaissez-vous pas déjà le contenu? Parcourez donc les champs au point où vous les avez déjà en mémoire.

Si vous essayez de voir si Pentaho a écrit une erreur dans le fichier, vous devez utiliser la gestion des erreurs à l'étape de sortie.

Enfin PDI n'est pas un outil de recherche de texte. Si vous avez vraiment besoin de faire cela, alors le meilleur pari est probablement le bon vieux grep.

Questions connexes