mit awk string zwischen Hochkommas ausgeben ?

Brusko

Well-Known Member
Guten Abend und erstmal ein schönes WE wünsche,

Ich verwende den mpg123 und dieser gibt ja den ICY-Meta zsichen zwei Hochkommas aus,
gibt es bei awk eine möglichkeit diese auszugeben ?

mfg Michael

kann ja auch sed oder grep sein
 
Zuletzt bearbeitet:
ICY-META: StreamTitle='GREAN DAY -21 GUNS' ; StreamUrl='adresse der URL';
so sieht z.b die Letzte zeile aus woraus ich gerne GREAN DAY - 21 GUNS rausgefilterrt hätte. zwischen den Hochkommas und dem Title sind keine leerzeichen.

mfg Michael
 
Huskeldanke das funtzt, nun hatte ich rein zufällig in dem stream ein weiteres Hochkomma (dumm gelaufen) kann man awk auch sagen das er bei einem Hochkomma anfäng und bis zum semikolon geht ? dann aber das letzte zeichen wieder löscht ? (uff was für ein satz)
 
Code:
| sed -E "s/.*StreamTitle='([^;]*)' ?;.*/\1/1"
Das funktioniert nur wenn keine ; im Titel sind.
 
danke Kamikaze das sieht gut aus, Ich gehe mal davon aus das so schnel kein semikolon im titel zufinden ist. Da sind Hochkommas ja doch deutlich mehr zu finden.
Kann man eigentlich awk und sed zusammen mischen ? z.b
mpg123 spiele | awk '/ICY-META/ {print $0}' | | sed -E "s/.*StreamTitle='([^;]*)' ?;.*/\1/1"

ich würde ja gerne alles weg lassen bis auf dem StreamTitle

oder sed -ne '/ICY-META/p' mit einbinden ?
 
Zuletzt bearbeitet:
Nun Mpg123 gibt ja folgenes aus:
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
version 1.6.4; written and copyright by Michael Hipp and others
free software (LGPL/GPL) without any warranty but with best wishes

Directory: http://ice.streaming.spacenet.de/
Playing MPEG stream 1 of 2: dieneue1077 ...
ICY-NAME: DIE NEUE 107.7
ICY-URL: http://www.dieneue1077.de
[layer3.c:368] error: missing 461 bytes in bit reservoir for frame 0
MPEG 1.0 layer III, 96 kbit/s, 44100 Hz stereo
[layer3.c:368] error: missing 188 bytes in bit reservoir for frame 1

ICY-META: StreamTitle='IRENE CARA - WHAT A FEELING';StreamUrl='http://www.dieneue1077.de';

wenn ich nun mit : cat /tmp/test | awk '/ICY-META/'

zeigt er mir auch nur die Zeile ICY usw.
gebe ich nun
awk '/ICY-META/ /tmp/test | sed -E "s/.*StreamTitle='([^;]*)' ?;.*/\1/1"

zeigt er mir erst den Title an wenn ich mpg123 beende dann aber auch so wie ich es möchte nur den Test in den Hochkommas
ich starte in einer zweiten konsohle mpg123 extra und gebe die daten über eine pipe aus /tmp/test
 
Zuletzt bearbeitet:
Da fehlt ein '

So. Was genau ist jetzt dein Problem? Ich habe aus dem Post nur heraus gelesen, dass es funktioniert. Aber irgendwie hatte es nicht diesen typischen Problem gelöst Tonfall.
 
hallo Kamikaze, stimmt das Hochkomma hatte ich nun bein Nachtippen vergessen.

Also ich spiele mit dem mpg123 eine Stream ab und gebe die textausgabe in einer Pipe
mpg123 stream 2>& /tmp/test
das bewirkt den Obrigen Auszug
wenn ich nun diese Pipe mit
awk '/ICY-META/' /tmp/test | sed -E "s/.*StreamTitle='([^;]*)' ?;.*/\1/1"
auslese passiert nichts er wartet.
Beende ich nun die Pipe auf der mpg123 seite (dateneingang) gibt er mir bei
awk dann den Titel erst aus.

Am liebsten würde ich schon die Ausgabe vom mpg123 bevor ich diese ine Pipe schreibe ändern aber das klappt irgendwie nicht
 
ich kenne nicht mpg123, das heißt, ich habe es noch nie von der komandozeile eingesetzt.
Die Information, die mpg123 da ausliest, muss aber wohl irgendwo zu finden sein, irgendwo in der Datei. Bei mp3 Dateien kenne ich da die id3tags und die kannst du mittels id3info und Konsorten auslesen. Wenn du dann in einem script erst diese Information auswertest und ausgibst und danach deinen Player startest, dürfte das funktionieren.
Vielleicht gibt es ähnliche Möglichkeiten auch mit anderen Dateien.
 
Die daten wird er sich wohl per stream aus dem internet holen, das ist ja ein radiostream.
Komisch ist ja blos wenn man erst mit awk sich die ICY-META zeile rausholt geht das, will man zusätzlich im gleichen befehl sed mit verwenden, wird es erst angezeigt wenn man die Pipe auf der einen seite beendet (mpg123 seite)
und awk gleich mit mpg123 anwenden bringt nichts (geht nicht)
 
Zurück
Oben