On Tue, Jan 20, 2004 at 10:58:30PM +0100, Christian Perle wrote:
FileX=http...(das X ist eine ein oder mehrstellige Zahl). Ich m?chte nun mit sed alles vor dem http l?schen. Leider hab ich
Warum schwierig, wenn es auch einfach geht? :)
cut -f"2-" -d"=" deine_datei
...und hier noch die "komplizierte" Loesung:
sed 's/^File[0-9]+=//' deine_datei
Zur Erklärung für Michael:
Zeichen | matcht_auf ------------------------ ^ | Zeilenanfang File | 'File' [0-9] | /mindestens/ eine Ziffer = | '='
Wird diese Zeichenfolge gefunden, wird sie weggeschmissen (mit einer leeren Zeichenfolge ersetzt), alle anderen Zeichenfolgen werden durchgelassen (sed ist ein Filter).
cut mag zwar laufzeiteffizienter sein (regexps sind relativ teuer), aber Christians Lösung ist näher am Kontext, da nicht nur auf das '=' gemätscht wird, sondern auch das 'FileX' mit einbezogen wird. Warum erwähne ich das? Weil vielleicht irgendwann später jemandem einfällt in die Datei Kommentarzeilen einzubauen und irgendwann enthält eine solche auch mal ein '='...
Ich ergänze das Quoting hier mal um Stefans Lösung:
On Tue, 20 Jan 2004 23:35:03 +0100, Stefan Lagotzki wrote:
Wobei es mit awk auch sehr anschaulich funktioniert :-)
awk -F'=' '{print $2}' dateiname
Test mit Deinem Beispiel:
echo "FileX=http://lug-dd.schlittermann.de" | awk -F'=' '{print $2}' ergibt http://lug-dd.schlittermann.de
Gedankenspiel:
File7=http://lug-dd.schlittermann.de options=X visit=daily
Advocatus Diaboli aka Eric ;-)