gunzip -c <filename> | less
ou
zcat <filename> | less
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.
zcat file.sql.gz
produzirá o arquivo para stdout, que pode ser combinado com grep
ou more
ou less
etc.
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.
Tags command-line mysql tar gzip