Mailinglist Archive: opensuse-de (4264 mails)

< Previous Next >
Re: aus tar-Archiv die neusten 50 Dateien anzeigen
  • From: David Haller <david@xxxxxxxxxx>
  • Date: Wed, 24 Nov 2004 22:44:46 +0100
  • Message-id: <20041124214446.GA5533@xxxxxxxxxxxxxxxxxx>
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.

< Previous Next >
Follow Ups