我想创建一个压缩输出文件,同时保留原始文件

我想创建一个压缩输出文件,同时保留原始文件

我想创建一个压缩输出文件,同时保留原始文件。我想通过使用命令任务或会话任务从 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

我尝试了这两件事,但根本没有创建 zip 文件。

下面是屏幕截图:

会话任务中的命令

答案1

您可以使用-c选项保留原始文件并将输出重定向到另一个文件:

gzip -c file > file.gz

它将保持原始file不变并创建名为的 gzip 文件file.gz

答案2

未创建您的 zip 文件,因为-cgzip 选项意味着压缩文件将发送到 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

相关内容