Re: sed Problem die 2.

2005-09-07 Diskussionsfäden Moritz Karbach
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.

2005-09-07 Diskussionsfäden Sven Gehr
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



sed Problem die 2.

2005-09-06 Diskussionsfäden Sven Gehr
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



Re: sed Problem die 2.

2005-09-06 Diskussionsfäden Juergen Salk
* 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