sed; einfache ausgabe bearbeiten

keks

keks

nicht 1337 genug
Hallo,

ich möchte diese Ausgabe eines Programms:

Code:
State: PLAY
File: /home/david/unterhaltung/musik/HYPE_Lies-and-Speeches/02 - My Innocence.ogg
Title: 2 HYPE - My Innocence (Lies and Speeches)
Artist: HYPE
SongTitle: My Innocence
Album: Lies and Speeches
TotalTime: 04:11
TimeLeft: 03:25
TotalSec: 251
CurrentTime: 00:46
CurrentSec: 46
Bitrate: 202Kbps
Rate: 44KHz

mit Hilfe von sed zu dieser Ausgabe umformen:
Code:
"/home/david/unterhaltung/musik/HYPE_Lies-and-Speeches/02 - My Innocence.ogg"

oder
Code:
/home/david/unterhaltung/musik/HYPE_Lies-and-Speeches/02\ -\ My\ Innocence.ogg

mein dazugehöriges sed Programm (zugegeben es ist nicht besonders schön, seid nachsichtig ich arbeite zum ersten mal damit ;) ) sieht so aus:
Code:
mocp -i | sed  -e 's/File://' -e '2!d' -e s/^" "/\\r/ -e 's/" "/\\ /'

ich komme aber nicht zum gewünschten Ergebnis und bin am ende meines Lateins :(
ich hoffe mir kann da jemand helfen!

mfg

Keks
 
Du willst also nur die Zeile mit "File" ausgegeben haben, aber ohne "File"?
Code:
mocp -i | grep -i file | awk '{print $2}'
Geht aber nur, wenn im Dateinamen keine Leerzeichen enthalten sind.
 
Im Dateinamen können Leerzeichen enthalten sein.
Ich möchte nur den Pfad zu den Dateien weil ich sie einem anderen Programm zur Weiterverarbeitung übergeben will.

Ich bastel mir gerade eine "DJ" Software.
dh. ich habe einen Rechner mit 2 Soundkarten.
Auf der einen Soundkarte erhalte ich die Ausgabe des ersten "mocp's" zum "vorhören" auf einem Headset.
Ich möchte per Tastendruck das Lied, welches ich gerade vorhöre an den anderen moc schicken bzw an seine Playlist anhängen, um es dann laut abzuspielen.

Code:
MOC:
Description: ncurses based console audio player
 moc (music on console) is a full-screen player designed to be powerful
 and easy to use.
 
Code:
$ sed -ne '/^File/p' testdatei
File: /home/david/unterhaltung/musik/HYPE_Lies-and-Speeches/02 - My Innocence.ogg
testdatei steht hier für die Ausgabe.

Willst du es ohne File:
Code:
sed -ne '/^File:/{s!^[^/]*\(.*\)$!\1!g;p}'
#ohne Dateiname
sed -ne '/^File:/{s!^[^/]*\(.*/\).*$!\1!g;p}'

Gruß Wolfgang
 
vielen dank Wolfang!

Jetzt muss ich das sed script nur noch mal auseinander pflücken um es zu verstehen :)

mfg

Keks
 

Ähnliche Themen

sed im script per crontab

CGI laesst sich nicht ausfuehren

Zurück
Oben