2016-12-02 10 views
0

Pentaho Spoonを初めて使用しています。私は約100のテキストファイルをフォルダに持っていますが、どれもファイル拡張子はありません。私はジョブを作成して一度に1つずつファイルを移動すると、そのファイルの名前を変更して最後に.txt拡張子を追加することができます。私がやりたいことは、各ファイルの名前を変更して.txt拡張子を追加するジョブを作成することです。私は、正規表現を使用してみましたが、ファイルの拡張子がないため、動作するように見えることはできません。 ご協力いただければ幸いです。Pentaho Spoonを使用して拡張子のないファイルの名前を変更する方法

答えて

1

これはかなり簡単な解決策ですが、ジョブステップではできないため、変換を使用する必要があります。

次の手順が必要になります。

enter image description here

は、ファイル名を取得します:「*」ちょうどあなたのフォルダや正規表現を追加します(二重引用符なし)、そのすべてがリストされています。 「ファイル名を表示...」ボタンがOKであることを確認してください。

変更されたJavaスクリプトの値:希望の拡張子を連結するnew_filenameを宣言します。新しいフィールドを出力するスクリプトを追加した後、「変数を取得」をクリックすることを忘れないでください。

var new_filename = filename + '.txt'; 

プロセスファイル:ソース/ターゲット・ファイル名としての動作=移動とファイル名/新しいファイル名を選択します。

これだけです!

+1

この数ヶ月前に私がどのように逃したか分かりませんでしたが、それをチェックして動作しました!ありがとう! – FunkyLikeLeeDorsey

0

ファイルグループの名前を変更することは、ケトルを使用しないことの1つです。なぜシェルがシェルが行うことをしないのですか?

rem example for Windows CMD shell 
ren absolute-path-to-folder\*. *.txt 

これは、シェルジョブエントリを使用して行うことができます。ケトルでそれを行う理由がある場合は、

0

これまで私は「シェルスクリプトを使用する」と答えました。ケトルサーバが開発者ワークステーションと同じOSにあることを保証できるなら、素晴らしい作品です。私はDev/SpoonのインスタンスがWindowsである環境にありますが、Prod/Kettle環境はLinuxであるため、それらをすべて統治するスクリプトファイルを書くことはできません。

「なぜ地球上でこれをやるのですか」については、私のシナリオは統合のシナリオです。我々はデータ統合のためにPentahoを使用していますが、エンタープライズ統合のための別のツールです。私はPentaho Jobが出力ファイルを生成したいと思っています.Pentahoがファイルを書き終える前に、私のエンタープライズ統合ツールでファイルを取り出して何かをしたいのですが。名前の変更は、エンタープライズ統合ソリューションがファイルが存在することを認識したときに競合状態を回避するのに役立ちますが、Pentahoはまだ書き込まれていません。

ファイルの名前を変更できる場合は、たとえばtestから変更します。 .csv.processingをテストする。 .csvの場合、Pentahoは最初に.processing拡張子を付けてファイルを作成してから、拡張子を削除します。テスト。* .csvを探しているエンタープライズ統合ソリューションは、Pentahoが名前を変更するまでファイルの処理を開始しません。ビンゴ、競争条件なし。

関連する問題