[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: sed - Problem



Am Mi 31.08.2005 11:26 schrieb Michelle Konzack
<linux4michelle@freenet.de>:
> Am 2005-08-31 09:41:13, schrieb Sven Gehr:

Vielen Dank für die Vorschläge. In der zwischenzeit habe ich viel mit
sed herum probiert und habe noch einiges geändert. Die Zeichen die den
Anfang und das Ende markieren kann ich ja selbst steuern da diese durch
die Aplikation in das File geschrieben werden. Ich hielt es für besser
wenn ich für Anfang und Ende nicht die gleichen nehme sonder
unterschiedliche:

@#   -> markiert den Anfang
# @  -> markiert das Ende

Mit:

echo "bla bla @# +49 621 / 4829-399 #@ bla bla" |sed -e 's/^.*\@#//' -e
's/\#@.*$//' -e 's/ //g' -e 's/^+49/0/' -e 's/^+/00/' -e 's/\///g' -e
's/-//g'

erhalte ich dann:

06214829399

Das einzigste was bei der Lösung nicht funktioniert ist eine Prüfung auf
weiter Sonderzeichen, Buchstaben etc. Das wäre jedoch in anbetracht des
Verwendungszwecks nicht tragisch. Bei den Zahlen handelt es sich, wie
sich der ein oder andere bestimmt schon gedacht hat, um Faxnummern.
Diese werden aus unsere Datenbank eingemischt. Wenn da Buchstaben oder
Sondernzeichen enthalten sind stimmt die Nummer ja ohnehin nicht und
braucht auch nicht weiter verarbeitet zu werden.

Nun wollte ich das Ganze in ein Skript einbauen und habe so meine
Probleme damit.


#!/bin/sh
FAXFILE=/usr/lib/cups/backend/doc155.txt
FAXNUME=$FAXFILE|sed -e 's/^.*\@#//' -e 's/\#@.*$//' -e 's/ //g' -e
's/^+49/0/' -e 's/^+/00/' -e 's/\///g' -e 's/-//g'
echo $FAXNUM

In der Datei doc155.txt steht genau die Zeichenkette drin wie ich sie
die ganze Zeit mit echo... übergeben habe. Wenn ich das Skript ausführe
wird jedoch nichts ausgegeben. Wie muß ich das zuweisen?

Viele Grüße
Sven



Reply to: