Re: lsdvd: Alle Titel ab bestimmter Laenge
David Haller <[email protected]>
| Newsgroups | gmane.linux.suse.multimedia.german |
|---|---|
| Message-ID | <[email protected]> |
Hallo,
Am Son, 21 Feb 2010, Al Bogner schrieb:
>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($_);
# }
printf "LENGTHS[%i]=%s;\n", $_->{'ix'}, $_->{'length'};
}
1;
====
Wenn du dann im shellscript
declare -a LENGTHS
eval "$(lsdvd -Op -a -v foo.iso | ~/bin/lsdvd-longest_track.pl)"
machst, kannst du anschließend per
"${LENGTHS[$i]}"
auf die Länge jedes Tracks zugreifen. Ist zwar auch nicht grad was ich
machen würde, aber ... ;)
>> 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.
Ineffizient ;)
-dnh
--
Die ultimativen Man-Pages haben ein ".c" als Dateiendung.
-- am DLUG-Stammtisch