ubuntuusers.de

Mplayer und Grep Problem

Status: Gelöst | Ubuntu-Version: Ubuntu 7.10 (Gutsy Gibbon)
Antworten |

DE1JPJ

Avatar von DE1JPJ

Anmeldungsdatum:
30. Dezember 2005

Beiträge: 82

Wohnort: Tremonia

Hallo,

ich höre fast zu 99% Internet Radio über Konsole
das mach ich mit dem Befehl:

mplayer http://ebmradio.de:9000 | grep "ICY Info: StreamTitle='"


als Ausgabe bekomme ich zum Beispiel:

ICY Info: StreamTitle='Noyce - Panique';StreamUrl='http://www.ebm-radio.de';


wie kann ich die Strings ICY Info: StreamTitle=' und ';StreamUrl='http://www.ebm-radio.de';[/mark]
wegschneiden das nur
Noyce - Panique über bleibt ?
Der Titel wechselt natürlich ständig und StreamUrl ist ab und zu anders, der Anfang ist immer der Gleiche.
Habe mit awk cat und grep probiert leider bekomme ich es nicht hin ☹ Danke schon mal für Hilfe
Gruß aus Tremonia
Peter

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

echo "ICY Info: StreamTitle='Noyce - Panique';StreamUrl='http://www.ebm-radio.de';" | perl -wlne "print m/StreamTitle='([^']+)'/"

Wenn du das Newline am ende nicht haben möchtest musst du die Option "-l" weg lassen.

DE1JPJ

(Themenstarter)
Avatar von DE1JPJ

Anmeldungsdatum:
30. Dezember 2005

Beiträge: 82

Wohnort: Tremonia

Hallo Sid Burn,

Danke für die schnelle Antwort
wie kann ich es am besten die Ausgabe des Mplayers an Dein Code übergeben
habe versucht

mplayer http://160.79.128.242:8800 | perl -wlne "print m/StreamTitle='([^']+)'/" ]


mach leider sehr viele leer Zeilen funktioniert aber sonst super - danke

mplayer http://160.79.128.242:8800 | grep "ICY Info: StreamTitle='" | perl -wlne "print m/StreamTitle='([^']+)'/"


zeigt garnix an erst bei Beenden vom Mplayer

Danke und Gruß
Peter

Kopfgeldjaeger

Anmeldungsdatum:
24. Dezember 2006

Beiträge: 1168

mplayer http://160.79.128.242:8800 | awk -F\' '/StreamTitle/ {print $2}'

Oder wenn wirklich nur der StreamTitle angezeigt werden soll:

mplayer http://160.79.128.242:8800 2> /dev/null | awk -F\' '/StreamTitle/ {print $2}'

mfg

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

mplayer http://160.79.128.242:8800 2>/dev/null | perl -wlne "print \$1 if m/StreamTitle='([^']+)'/"

oder gleich in nem Skript:

#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use open ':utf8';
use open ':std';
use Getopt::Long;
use IPC::Open3;

my $url = 'http://160.79.128.242:8800';
GetOptions(
    'url=s' => \$url,
) or exit 0;

my ($write, $read, $error);
my $pid = open3($write, $read, $error, 'mplayer', $url);

while ( my $line = <$read> ) {
    if ( $line =~ m/StreamTitle='([^']+)'/ ) {
        print $1, "\n";
    }
}

Wenn du nichts eingibst wird default die "url" ⇒ "http://160.79.128.242:8800" genommen. und mit "-u" oder "--url" kannst du einfach eine andere angeben.

DE1JPJ

(Themenstarter)
Avatar von DE1JPJ

Anmeldungsdatum:
30. Dezember 2005

Beiträge: 82

Wohnort: Tremonia

Hallo Sid Burn , Hallo Kopfgeldjaeger

das ist ist genau was ich gesucht habe -vielen vielen Dank ☺
und danke Sid Burn für Deinen Perl Skript kann ich sehr gut gebrauchen

Gruß aus Tremonia und nochmal Danke
Peter

Antworten |