Re: sed Problem die 2.
Am Mi 07.09.2005 11:38 schrieb Moritz Karbach <[EMAIL PROTECTED]>: Hallo, > > Ich muß eine Nummer aus folgendem String extrahieren: > wenn du viele solche Sachen machen musst, lohnt sich für dich > vielleicht ein > Blick auf Perl! > --- extract.pl --- > #!/usr/bin/perl > while(<>) > { > if ( m/(([d/-]+))/ ) > { > print $1; > print " "; > } > } > > Und dann: > > $ ./extract.pl < file Danke für deine Hilfe. Ich habe es zwischenzeitlich mit einem Bash-Skript gemacht. Habe schon viel gutes über Perl gehört allerdings habe ich im Moment nicht die Zeit noch eine weitere Sprache zu lernen. Danke! Viele Grüße Sven
Re: sed Problem die 2.
Hi, > Ich muß eine Nummer aus folgendem String extrahieren: wenn du viele solche Sachen machen musst, lohnt sich für dich vielleicht ein Blick auf Perl! zB: --- extract.pl --- #!/usr/bin/perl while(<>) { if ( m/\(([\d\/\-]+)\)/ ) { print $1; print "\n"; } } Und dann: $ ./extract.pl < file - Moritz
Re: sed Problem die 2.
* Sven Gehr <[EMAIL PROTECTED]> [050906 09:56]: > Ich muß eine Nummer aus folgendem String extrahieren: > > > 381 470 M (@# )[92 50 25 0]xS > 573 470 M (0621/48293-91)[50 50 50 50 28 50 50 50 50 50 33 50 0]xS > 1184 470 M ( #@)[25 50 0]xS > > Die Nummer die ich daraus brauche ist die 0621/48293-91. [...] > > In Worte formuliert würde es lauten: > > Nimm alle Zeichen zwischen (@# ) und ( #@). Suche innerhalb dieses ^ Das da ist kein normales Space-Zeichen sondern ein "Hard Space" (0xa0). Soll das wirklich so sein, oder ist das ein Lapsus deines Editors? > Teilstrings nach einer Klammer (..). Der Inhalt in dieser Klammer > ist die gesuchte Nummer im Rohformat die ich mit den sed Befehlen aus > dem ersten Beispiel wieder aufbereiten kann. Ich habe das erste Beispiel zwar nicht verfolgt, aber ich würde das Problem in etwa so lösen: sed '/(@# )/,/( #@)/s/.*(\([-/0-9]*\)).*/\1/;t;d' file Dabei habe ich angenommen, dass der Hard Space in Wirklichkeit ein normales Space darstellen soll und dass die gesuchten Nummern nur Zahlen und die Zeichen "/" und "-" enthalten dürfen. Beste Grüße - Jürgen -- GPG A997BA7A | 87FC DA31 5F00 C885 0DC3 E28F BD0D 4B33 A997 BA7A signature.asc Description: Digital signature
sed Problem die 2.
Hallo zusammen, nachdem ihr mir beim letzten sed-Problem geholfen habt und alles soweit funktioniert habe ich nun ein weiteres das ich mit dem Wissen des 1. leider nicht alleine hin bekomme. Ich weiß nicht ob es mit sed überhaubt funktioniert. Ich muß eine Nummer aus folgendem String extrahieren: 381 470 M (@# )[92 50 25 0]xS 573 470 M (0621/48293-91)[50 50 50 50 28 50 50 50 50 50 33 50 0]xS 1184 470 M ( #@)[25 50 0]xS Die Nummer die ich daraus brauche ist die 0621/48293-91. Der gesamte String ist natürlich lang und die gesuchte Nummer steht immer zwischen dem (@# ) ... und dem ... ( #@) Allerdings kommen zwischen den Einleitung- und Ausleitungs- Zeilen noch verschiedene Zeichen die durch PS-Treiber erzeugt werden. In Worte formuliert würde es lauten: Nimm alle Zeichen zwischen (@# ) und ( #@). Suche innerhalb dieses Teilstrings nach einer Klammer (..). Der Inhalt in dieser Klammer ist die gesuchte Nummer im Rohformat die ich mit den sed Befehlen aus dem ersten Beispiel wieder aufbereiten kann. Ist soetwas mit sed möglich? Viele Grüße Sven