Mailinglist Archive: opensuse-de (989 mails)

< Previous Next >
Re: Text in Zeichenkette bestimmen, zB mit sed?
  • From: David Haller <dnh@xxxxxxxxxxxx>
  • Date: Thu, 10 Sep 2009 18:05:48 +0200
  • Message-id: <20090910160548.GB7135@xxxxxxxxxxxxxxxxxx>
Hallo,

Am Don, 10 Sep 2009, Al Bogner schrieb:
Das darum herum muss egal sein. Es geht um die Suche wo "center=" ist.
Eventuell könnte man das x. Vorkommen von | berechnen und dann mit cut -f -
d"|" den Bereichen zwischen den | bestimmen und dann weiter mit cuf -f -d"=".

Das 'center=' ist immer nach dem n-ten '|'? Dann bietet es sich an awk
zu verwenden.

awk -F'|' '/center=/{print $n;}'

Den Inhalt von $n kannst du auch noch bearbeiten, z.B.:

'{sub("center=","",$n); print $n;}'

$ echo '|foo|bar|center = 4, 5.243 | baz |' | \
awk -F'|' '/center[[:space:]]=/ {
sub("center[[:space:]]*=","",$4);
print $4;
}'
4, 5.243

'whitespace' bekommst du mit nem gsub("[[:space:]]","", $n) vor dem
'print' raus.

Achso, obiges arbeitet noch Zeilenweise, wenn also "nach dem n-ten
'|'" sich ab Textbeginn berechnet muß man noch den Record-Seperator
setzen:

awk 'BEGIN { RS="|"; FS="="; }
NR == n {
# gsub("[[:space:]]", "", $2);
print $2;
}'

Die Lösung gefällt mir eigentlich sogar besser ;)

HTH,
-dnh

--
== Re: MS' rules for creating 8.3's out of "long filenames" ==
Rules? There are *rules* for this? And there was I thinking it just inserted
a few random characters based on your cat's star-sign, the number of
milliseconds since your last bowel movement, and the instantaneous value of
the Dow Jones Index!
Nothing M$ makes is _that_ accurate. -- Tanuki, Shawn Latimer
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups