Am Samstag, 20. Februar 2010 23:55:59 schrieb David Haller: Hallo David,
Am Sam, 20 Feb 2010, Al Bogner schrieb:
Wie definiere ich alle Titel, die zB länger als 30 Minuten sind?
Parse den Output von lsdvd.
Grins, mit der bash geht das nicht so einfach. Ich dachte mir schon, dass da was mit perl oder awk kommt.
Oder das hier:
==== ~/bin/lsdvd-longest_track.pl ==== #!/usr/bin/perl -w use strict; use Data::Dumper;
our (%lsdvd, $lsdvddata); { local $/; $lsdvddata = <>; } eval $lsdvddata; die "$@" if "$@"; foreach (@{$lsdvd{track}}) { if( $_->{ix} == $lsdvd{longest_track} ) { print Dumper($_); } } 1; ====
lsdvd -Op [-a -v -s] [foo.iso] | lsdvd-longest_track.pl
Man müsste da etwas verändern, aber ich blicke nicht so recht durch. Ich will nicht die Zeit des längsten Titels, sondern die Zeit von jedem. Mein bash-script hat $i für die Titelnummer und das sollte an das Perl-Script übergeben werden, dass dann als Ergebnis _nur_ "length' => '738.24' ausgibt bzw. nur '738.24' als Variable an die Bash gibt.
Statt der einfachen Ausgabe per Data::Dumper kannst du dir natürlich genau das ausgeben lassen, was du willst.
;-) Al -- To unsubscribe, e-mail: opensuse-multimedia-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-multimedia-de+help@opensuse.org