Eu quero criar um arquivo de saída compactado, mantendo o original

1

Eu quero criar um arquivo de saída compactado, mantendo o original. Eu quero fazer isso do Informatica final usando a tarefa de comando ou a tarefa de sessão.

Abaixo está o exemplo que estou tentando:

  1. Na tarefa da sessão: Tipo de comando = 'Comando',                 Comando = gzip -c /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/tgt_zip.out

  2. No caso de usar a tarefa de comando:

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

Eu tentei as duas coisas, mas o arquivo zip não foi criado.

Abaixo está a captura de tela:

    
por Infa_unix 21.03.2014 / 10:22

3 respostas

4

Você pode manter o arquivo original usando -c opções e redirecionar a saída para outro arquivo:

gzip -c file > file.gz

Ele manterá seu file unchange original e criará seu arquivo gzip chamado file.gz

    
por 21.03.2014 / 11:04
0

Seu arquivo zip não está sendo criado porque a opção -c para gzip significa que o arquivo compactado é enviado para o stdout em vez de ser gravado no disco. Para o que você quer, você poderia fazer o que Laurent sugeriu em seu comentário, ou você poderia usar zip em vez de gzip , o que deixa os arquivos originais, assim como criar um arquivo .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

Ou:

cd /var/opt/powermart/pc8_dev/infa_shared/TgtFiles/test1/ && zip tgt_zip tgt_zip
    
por 21.03.2014 / 10:56
0

gzip -c lê um arquivo (ou entrada padrão quando o nome do arquivo é -) e grava uma versão compactada na saída padrão.

Portanto, salve o conteúdo em um novo arquivo e, em seguida, use o redirecionamento padrão.

gzip -c inputfile >outputfile

Para simplesmente compactar no lugar e produzir inputfile.gz

gzip inputfile

Se informatica estiver ignorando o redirecionamento stdout , você poderá passar o comando inteiro para um shell (sh, csh, bash, ...) e deixar que ele faça isso,

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

Eu não sou um usuário informatica, portanto, o fórum para mais informações sobre esse produto aqui .

editar 1

Aqui está um script simples para usar da informatica, que oculta o redirecionamento de i / o.

$ cat infagzip.sh 
#!/bin/sh

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

Agora, sua linha de comando deve se parecer com isso

/path/to/infagzip.sh inputfilename outputfilename
    
por 21.03.2014 / 11:07