Unter Fedora/Redhat/CentOS less
scheint der Befehl eine gzippte Datei wie durch Zauberhand zu erkennen und sie sofort zu dekomprimieren, sodass Sie Folgendes tun können:
less my_stuff.csv.gz
Mir ist gerade aufgefallen, dass dies unter Ubuntu 11 nicht funktioniert
less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file. See it anyway?
Ich habe meine CentOS-VMs untersucht, um zu sehen, ob es irgendeine Shell-Alias-Magie gibt, mit der es funktioniert, aber das scheint nicht der Fall zu sein. Ist die GZIP-Unterstützung einfach in die CentOS-Binärdatei integriert?
Wenn jemand weiß, wie dies unter CentOS funktioniert und/oder wie es unter Ubuntu zum Laufen gebracht werden kann, wäre ich dankbar.
Ich bin mir bewusst, dass ich das kann
zcat my_stuff.csv.gz | less
aber dadurch würde meine Tastatur schneller verschleißen.
Antwort1
less
tun Sie dies nicht standardmäßig, aber es gibt eine Zeile im Standard ~/.bashrc
, die das Standardverhalten ändert:
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
Achten Sie darauf, diese Zeile nicht zu entfernen oder zu kommentieren.
Wenn diese Zeile vorhanden ist, können Sie gezippte und nicht gezippte Dateien auslagern, ohne es zu wissen, wie in
less /var/log/dpkg.log*
wobei einige der Protokolle gezippt und andere nicht gezippt werden können.
Für das über dieses Konto aufgerufene Root-Konto sudo
ist dies nicht möglich. Es gibt jedoch zwei Problemumgehungen:
sudo zless file*
sudo -E less file*
Im ersten Fall habe ich verwendet zless
, das funktioniert auch für nicht komprimierte Dateien.
Im zweiten habe ich die -E
Option hinzugefügt, sudo
Ihre Umgebungsvariablen beizubehalten, um weniger Arbeit zu machen, als Sie erwarten würden.
Antwort2
Wenigerkann keine gzippten Dateien lesen, Sie können es in der Manpage nachlesen. Es gibt ein Skript, das standardmäßig in Ubuntu und den meisten Distributionen installiert ist, namenszlos, das funktioniert wie von Dir beschrieben.
Die Antwort lautet also:
zless my_stuff.csv.gz
Der Unterschied zwischen Fedora und Ubuntu besteht darin, dass Fedora die UmgebungsvariableWENIGER OFFENum das Argument durch Lesspipe zu zwingen:
echo $LESSOPEN
||/usr/bin/lesspipe.sh %s
Beachten Sie, dass dieser Befehl unter Ubuntu nicht funktioniert.