* Dennis Leist schrieb am 26.Apr.2002:
Ich habe eine Text-Datei, die recht gross ist. In dieser ist eine ZEILE, die mit einem STRING beginnt. Auf diesen STRING folgt eine unbestimmte Anzahl von Leerzeichen (\t und ähnliches). Jetzt folgt eine Zahl - genau die will ich haben !
Beisp.: ZEILE ist: <begin> Dies ist der String: 123456789 <end>
Ich nehme \([:blank:]*\), um beliebig mehrfaches Vorkommen von blank-Zeichen zu erkennen.
cat test.txt | sed 's/.*Dies ist der String:\([:blank:]*\)\([1-9]*\)/\3/g' ^
Nimm hier mal 2 statt 3. Wundert mich, daß da überhaupt was rauskommt, Du hast doch nur 2 \(...\) Klammern definiert. So sollte es funktionieren: cat test.txt | sed 's/.*Dies ist der String:\([:blank:]*\)\([1-9]*\)/\2/g' Die erste der beiden Klammern ist aber unnötig, Du brauchst sie doch niergends: cat test.txt | sed 's/.*Dies ist der String:[:blank:]*\([1-9]*\)/\1/g' Weiterhin ist cat unnötig, die Datei kann man auch sed mitgeben: sed 's/.*Dies ist der String:[:blank:]*\([1-9]*\)/\1/g' test.txt Das .* am Anfang ist überflüssig. sed 's/Dies ist der String:[:blank:]*\([1-9]*\)/\1/g' test.txt Wenn ich Dich richtig verstanden habe, dann soll der Text "Dies ist der String:" immer am Zeilenanfang stehen. Dann sollte man das auch so sagen. Außerdem kann er dann nicht mehrfach auftreten, so daß das g überflüssig ist. sed 's/^Dies ist der String:[:blank:]*\([1-9]*\)/\1/' test.txt Ich habe das jetzt nicht überprüft. Hoffentlich stimmt es so. Bernd -- Welches Buch ist zu empfehlen? Schon mal bei SuSE vorbeigesehen? http://www.suse.de/de/products/books/index.html oder die Empfehlungen der SuSE-Entwickler auf dem eigenen Rechner? file:///usr/share/doc/sdb/de/html/literatur.html |Zufallssignatur 5