元のファイルを保持しながら圧縮された出力ファイルを作成したいと思います。コマンドタスクまたはセッションタスクを使用してInformatica側でこれを実行したいと思います。
私が試しているものの例は次のとおりです。
セッション操作で:コマンドタイプ= 'コマンド'、コマンド=
gzip -c /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/tgt_zip.out
コマンド操作を使用する場合:
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
-c
gzipオプションは、圧縮ファイルがディスクに書き込まれずstdoutに転送されることを意味するため、zipファイルは作成されません。必要に応じて、Laurentがコメントで提案したことを行うか、代わりにzip
元gzip
のファイルを保持して.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