No Fedora/Redhat/CentOS, o less
comando parece detectar magicamente um arquivo compactado e descompactá-lo instantaneamente, para que você possa fazer:
less my_stuff.csv.gz
Acabei de notar que isso não funciona no Ubuntu 11
less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file. See it anyway?
Tenho examinado minhas VMs CentOS para ver se há alguma mágica de alias de shell que faz com que funcione, mas parece não haver. O suporte gzip está integrado ao binário CentOS?
Se alguém souber como isso funciona no CentOS e/ou como pode funcionar no Ubuntu, ficaria grato.
Estou ciente de que posso fazer
zcat my_stuff.csv.gz | less
mas isso faria com que meu teclado se desgastasse mais rapidamente.
Responder1
less
não faça isso por padrão, mas há uma linha no padrão ~/.bashrc
que altera o comportamento padrão:
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
Certifique-se de não remover ou comentar esta linha.
Com isso implementado, você pode paginar arquivos compactados e não compactados sem saber, como em
less /var/log/dpkg.log*
onde alguns dos logs podem ser compactados e outros não.
Para a conta root acessada por meio de sudo
você, você não pode fazer a mesma coisa, mas há duas soluções alternativas:
sudo zless file*
sudo -E less file*
No primeiro caso que usei zless
, isso funciona também para arquivos não compactados.
No segundo adicionei a -E
opção de sudo
preservar suas variáveis de ambiente, para fazer menos trabalho como seria de esperar.
Responder2
Menosnão consegue ler arquivos compactados, você pode verificar isso em sua página de manual. Existe um script, instalado por padrão no Ubuntu e na maioria das distros, chamadosem z, isso funciona como você descreveu.
Então a resposta é usar:
zless my_stuff.csv.gz
A diferença entre o Fedora e o Ubuntu é que o Fedora define a variável de ambienteLIÇÃO ABERTApara forçar o argumento através de lesspipe:
echo $LESSOPEN
||/usr/bin/lesspipe.sh %s
Observe que este comando não funcionará no Ubuntu.