원본 파일을 유지하면서 압축된 출력 파일을 만들고 싶습니다. 명령 태스크 또는 세션 태스크를 사용하여 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
-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