Como você vê um arquivo sql.gz como texto simples SQL a partir da linha de comando?

0

Como você vê um arquivo sql.gz como texto simples em SQL a partir da linha de comando?

Eu quero ler as instruções SQL armazenadas em um arquivo .sql.gz , a partir da linha de comando no servidor. Eu tentei tar -xzvf , mas recebo tar: This does not look like a tar archive . cat retorna lixo porque está compactado.

    
por Nick 21.07.2014 / 15:23

3 respostas

2
gunzip -c <filename> | less

ou

zcat <filename> | less
    
por 21.07.2014 / 15:33
2

zcat file.sql.gz produzirá o arquivo para stdout, que pode ser combinado com grep ou more ou less etc.

    
por 21.07.2014 / 15:31
2

Na maior parte do tempo, e provavelmente neste caso, apenas less fará a coisa certa. Isso usa o chamado pré-processador less . Então, faça

less file.sql.gz

Isso não gravará o arquivo em texto simples no filesytem; é apenas para o seu prazer visual, mas na maior parte do tempo isso é suficiente. Eu pessoalmente acho o less preprocesor bastante útil. Isso me poupa de lembrar um monte de comandos. No Debian, pelo menos, o pré-processador é /usr/bin/lesspipe . Este é um script de shell. Esta localização pode ser encontrada verificando o valor da variável ambiental LESSOPEN. por exemplo,

echo $LESSOPEN
|/usr/bin/lesspipe %s

A parte relevante deste script para apenas um arquivo de texto compactado é:

                 # Note that this is out of alpha order so that we don't catch
                    # the gzipped tar files.
                    *.gz|*.z|*.dz)
                            gzip -dc "$1" ;;

Isso é com less versão 444-4 no Debian wheezy.

    
por 21.07.2014 / 17:07