Archiv verlassen und diese Seite im Standarddesign anzeigen : AWK Sonderzeichen
Claudine
15-07-2004, 19:38
Weiß jemand wie man in AWK mit gsup nach
Hochkomma, Kaufmannsund, geschweifte Klammer, Slash, Backslash, `,´
sucht?
Hans-Georg Normann
15-07-2004, 23:46
man awk :D
gsub(r, s [, t])
For each substring matching the regular expression r in the string t, substitute the string s, and return the number of substitutions. If t is not supplied, use $0. An & in the replacement text is replaced with the text that was actually matched. Use \& to get a literal &. (This must be typed as "\\&"; see GAWK: Effective AWK Programming for a fuller discussion of the rules for &'s and backslashes in the replacement text of sub(), gsub(), and gensub().)
Hans
Claudine
16-07-2004, 09:24
man awk :D
Hast du eventuell ein Bespiel zur Hand?
# funktioniert leider nicht
echo heut\'e | awk '{gsub(/\'/,"__",$0); print $0}'
Hans-Georg Normann
16-07-2004, 10:54
Habe jetzt Stunden m,eines Urlaubs verbraten :confused: :D Ich komm nicht drauf. ist dieses denn das Ergebnis, was du sehen möchtest?
[hans@rosi hans]$ echo heute\'e|sed 1,\$s/\'/__/g
heute__e
Hans
Claudine
16-07-2004, 12:30
Habe jetzt Stunden m,eines Urlaubs verbraten :confused: :D Ich komm nicht drauf. ist dieses denn das Ergebnis, was du sehen möchtest?
Das sieht sehr gut aus, jetzt nur noch in awk damit man nicht
noch eine zusätzliche Subshell verbraten muß.
Habe jetzt Stunden m,eines Urlaubs verbraten :confused: :D Ich komm nicht drauf.
Du bist nicht allein! Ich habe auch schon eine Weile herumprobiert.:D
Das Problem ist, das der awk Interpreter das Hochkomma als Anfang
eines Scriptes ansieht. Vielleicht könnte man mit printf etwas zurecht zaubern.
awk kennt den Befehl auch. Aber damit kenne ich mich nicht so gut aus.
Manchmal ist es auch sinnvoll den bisher beschrittenen Weg zu verlassen, und sich nicht in dem Problem festzubeißen, ich meine damit, dass man evtl. über eine Lösung in einer anderen Sprache (Perl, Python, Ruby etc.) nachdenken sollte. Das ist meist schneller geschrieben, und auch oft schneller vom Laufzeitverhalten als sich stundenlang mit den Eigenheiten der vielen Shell-Tools auseinander zu setzen. Man kann sicherlich fast alles auch mit awk/sed und Konsorten machen, sollte aber auch mal über den Tellerrand gucken, ob sich dort nicht eine viel einfachere Lösung anbietet.
fs111
Claudine
16-07-2004, 18:19
Man kann sicherlich fast alles auch mit awk/sed und Konsorten machen, sollte aber auch mal über den Tellerrand gucken, ob sich dort nicht eine viel einfachere Lösung anbietet.
Ist ja richtig, aber es kann doch nicht angehen das die Scriptsprache bei
bestimmten Zeichen Einschränkungen hat, die anscheinend nirgendwo
dokumentiert sind.
Normalerweise ist das ein Klacks in anderen Sprachen, ... deswegen reizt
mich das Problem ja so. Außerdem stehe ich bei diesem Problem nicht
unter Zeitdruck, sonst hätte ich das schon längst in einer anderen
Sprache geschrieben.
Claudine
16-07-2004, 20:17
Kurz vor Feierabend.:D
echo heut\'e | awk "{gsub(\"'\", \"__\"); print;}"
Hans-Georg Normann
16-07-2004, 21:43
Und wie realisiert man so etwas in leistungsfähigem Windows eXPensive? :confused: :rolleyes:
Hans
Vermutlich indem man sich ein awk installiert.
fs111
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.