Hallo, Am Wed, 24 Nov 2004, Jan Trippler schrieb:
Am Mittwoch, 24. November 2004 06:34 schrieb David Haller:
Am Wed, 24 Nov 2004, Ekkard Gerlach schrieb:
Hat hier jmd schon eine Lösung aus einem tar/ tgz-Archiv die neusten 50-Dateien anzeigen zu lassen? - Es geht um die Prüfung einer Datensicherung: "Sind auch die neusten, neuen Dateien von heute 'drauf?" [..] $ tar tvzf archiv.tgz | perl -MTime::ParseDate -ne ' { local @_ = split(/\s+/); print parsedate("$_[3] $_[4]"), " $_"; }' | sort -n | tail -n 50
oder ganz in perl und nen Tick schneller (aber tar+gzip bremst wohl eh mehr) [...]
*chm chm* Warum einfach, wenns auch kompliziert geht? ;-)
tar tvzf archiv.tgz | sort -k 4,5 | tail -n 50
Das ist natuerlich klar besser :) Ich hab irgendwie nicht gesehen, dass das Datum in einer per sort sortierbaren Form ausgegeben wird. Kennst du ein Tool, das wie Time::ParseDate, Date::Parse oder Date::Manip ein Datum parsen koennen? Ich habe also an den allgemeinen Fall gedacht ;) Z.B. eine Liste wie von 'ls -l --full-time' willst du nicht mit sort sortieren ;) Das geht dann aber mit Time::ParseDate (usw.) nach dem gleichen Schema, analog wenn man mit perl sortiert. ls -l --full-time | perl -MTime::ParseDate -ne '{ local @_ = split(/\s+/); print parsedate(join(" ", @_[5,6,7,8])), " $_\n"; }' Ja, klar kann ls --sort=time das selbst, aber nimm z.B. ne Dateiliste von irgendnem FTP-Server o.ae. und die Felder im slice kann man ja leicht an die Liste anpassen. Man kann also meine Loesungen als Vorbild fuer Faelle nehmen, wo die Ausgabe nicht per sort -k .. sortierbar ist und man die Liste auch nicht direkt sortiert ausgeben lassen kann. -dnh -- 6.9 is a good thing interupted by a period.