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 '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" ==
--
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
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 insertedNothing M$ makes is _that_ accurate. -- Tanuki, Shawn Latimer
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!
--
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 > |