我想创建一个压缩输出文件,同时保留原始文件。我想通过使用命令任务或会话任务从 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
我尝试了这两件事,但根本没有创建 zip 文件。
下面是屏幕截图:
答案1
您可以使用-c
选项保留原始文件并将输出重定向到另一个文件:
gzip -c file > file.gz
它将保持原始file
不变并创建名为的 gzip 文件file.gz
答案2
未创建您的 zip 文件,因为-c
gzip 选项意味着压缩文件将发送到 stdout 而不是写入磁盘。对于您想要的,您可以执行 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
读取文件(或标准输入,当文件名为 - 时)并将压缩版本写入标准输出。
因此,将内容保存到新文件,然后可以使用标准输出重定向。
gzip -c inputfile >outputfile
简单地压缩并生成 inputfile.gz
gzip inputfile
如果 informatica 忽略stdout
重定向,您可以将整个命令传递给 shell(sh、csh、bash...)并让它执行此操作,
Command=sh -c "gzip -c filename > newfilename"
我不是 informatica 用户,因此可以在他们的论坛上获取有关该产品的更多信息这里。
编辑1
这是一个来自 informatica 的简单脚本,它隐藏了 I/O 重定向。
$ 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