元のファイルを保持しながら圧縮された出力ファイルを作成したいと思います。

元のファイルを保持しながら圧縮された出力ファイルを作成したいと思います。

元のファイルを保持しながら圧縮された出力ファイルを作成したいと思います。コマンドタスクまたはセッションタスクを使用してInformatica側でこれを実行したいと思います。

私が試しているものの例は次のとおりです。

  1. セッション操作で:コマンドタイプ= 'コマンド'、コマンド=
    gzip -c /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/tgt_zip.out

  2. コマンド操作を使用する場合:

    gzip -c /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/tgt_zip.out

これら2つを試しましたが、zipファイルはまったく生成されません。

以下はスクリーンショットです:

セッション操作のコマンド

答え1

-cオプションを使用してソースファイルを保存し、出力を別のファイルにリダイレクトできます。

gzip -c file > file.gz

ソースをfile変更せずにそのままにして、次の名前のgzipファイルを生成します。file.gz

答え2

-cgzipオプションは、圧縮ファイルがディスクに書き込まれずstdoutに転送されることを意味するため、zipファイルは作成されません。必要に応じて、Laurentがコメントで提案したことを行うか、代わりにzipgzipのファイルを保持して.zipファイルを生成することを使用できます。

zip /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/tgt_zip.out.zip /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/tgt_zip.out

または:

cd /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/ && zip tgt_zip tgt_zip

答え3

gzip -cファイル(またはfilenameが-の場合は標準入力)を読み取り、圧縮バージョンを標準出力に書き込みます。

したがって、内容を新しいファイルに保存してから、標準出力リダイレクトを使用できます。

gzip -c inputfile >outputfile

簡単に圧縮してinputfile.gzを作成してください。

gzip inputfile

Informaticaがリダイレクトを無視する場合は、コマンドstdout全体をシェル(sh、csh、bash ...)に渡して実行させることができます。

Command=sh -c "gzip -c filename > newfilename"

私はinformaticaユーザーではないので、そのフォーラムで製品に関する詳細情報を入手できます。ここ

編集1

これはI / Oリダイレクトを隠すInformaticaの簡単なスクリプトです。

$ cat infagzip.sh 
#!/bin/sh

if [ $# -ne 2 ]
then
    echo "Usage $0 : inputfile outputfile "
    exit 1
fi
 gzip -c "$1" > "$2"

コマンドラインは次のようになります。

/path/to/infagzip.sh inputfilename outputfilename

関連情報