awk vars in strings

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
rechenzentrum
Beiträge: 76
Registriert: 09.06.2011 03:45:35

awk vars in strings

Beitrag von rechenzentrum » 29.06.2011 16:29:22

ich bin echt erstaunt wie gut awk funktioniert, aber keine anstaendigen anleitungen zu finden sind.

ich bekomme volgendes nicht hin:

Code: Alles auswählen

var = "man";
var2="super $var0";
ich habe schon mehrere Variationen ausprobiert, ich bekomme es einfach nicht hin, eine einen String bei der eine Variable in Spiel kommt.
3 Tage Internet Recherche waren ebenfalls erfolgreich.

:oops: einfach zum platzen. ich verstehe nicht warum so etwas einfaches nicht in der doc steht!

rechenzentrum
Beiträge: 76
Registriert: 09.06.2011 03:45:35

Re: awk vars in strings

Beitrag von rechenzentrum » 29.06.2011 16:31:41

selbst sprintf("super %s", var) funktionert nicht.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: awk vars in strings

Beitrag von Meillo » 29.06.2011 18:08:03

rechenzentrum hat geschrieben:ich bin echt erstaunt wie gut awk funktioniert, aber keine anstaendigen anleitungen zu finden sind.
Freut mich, dass dir awk gefaellt. Ordentliche Doku gibt es schon: Das Buch ``The AWK Programming Language'' von Aho, Weinberger und Kernighan ist die offizielle Beschreibung der Sprache. Ansonsten finde ich die Manpage sehr gut.
ich bekomme volgendes nicht hin:

Code: Alles auswählen

var = "man";
var2="super $var0";
ich habe schon mehrere Variationen ausprobiert, ich bekomme es einfach nicht hin, eine einen String bei der eine Variable in Spiel kommt.
:oops: einfach zum platzen. ich verstehe nicht warum so etwas einfaches nicht in der doc steht!
Steht doch drin:
Manpage von mawk(1) hat geschrieben: concatenation (no explicit operator)
In awk verkettet man Strings indem man sie nebeneinandern schreibt. Variablenwerte werden in diesem Fall automatisch in ihre Stringrepresentierung gebracht.

Code: Alles auswählen

var = "man"
var2 = "super" var;
Beachte, dass normale Variablen *kein* Dollarzeichen haben -- es ist wie in C, nicht wie in der Shell oder in Perl. Nur die Positionsvariablen ($1, $2, ... $NF) haben ein Dollarzeichen davor.
Use ed once in a while!

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: awk vars in strings

Beitrag von Meillo » 29.06.2011 18:09:39

rechenzentrum hat geschrieben:selbst sprintf("super %s", var) funktionert nicht.
Doch! :-P
Use ed once in a while!

rechenzentrum
Beiträge: 76
Registriert: 09.06.2011 03:45:35

Re: awk vars in strings

Beitrag von rechenzentrum » 30.06.2011 02:52:58

ja du hast recht.
es hat nicht funktioniert, weil ich den string nicht in Anführungszeichen eingebettet habe.

nach dem Buch schaue ich mich mal um.

Vielen Dank für deine Hilfe.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: awk vars in strings

Beitrag von Meillo » 30.06.2011 09:47:12

rechenzentrum hat geschrieben:ja du hast recht.
*hehe* :-D
es hat nicht funktioniert, weil ich den string nicht in Anführungszeichen eingebettet habe.
Das Problem sitzt (fast) immer vor dem Bildschirm.
nach dem Buch schaue ich mich mal um.
Ich habe das Buch nur kurz eingeworfen weil du meintest es gaebe keine gute Dokumentation. Ich sollte dich warnen, dass du es eher nicht billig bekommen wirst. Wenn du aber awk richtig verstehen willst, dann lese es, denn es beschreibt vor allem die Sprache an sich.

Wenn du aber nur ab und zu mal was mit awk programmieren willst, dann brauchst du das Buch nicht unbedingt. Dann ist ``SED & AWK (ge-packt)'' von Thesing beim mitp-Verlag die bessere Wahl. Das Buechlein ist sehr praxisorientiert. Ich kann es ebenso voll empfehlen.
Use ed once in a while!

rechenzentrum
Beiträge: 76
Registriert: 09.06.2011 03:45:35

Re: awk vars in strings

Beitrag von rechenzentrum » 21.07.2011 09:15:19

Meillo hat geschrieben:
rechenzentrum hat geschrieben:ja du hast recht.
*hehe* :-D
es hat nicht funktioniert, weil ich den string nicht in Anführungszeichen eingebettet habe.
Das Problem sitzt (fast) immer vor dem Bildschirm.
nach dem Buch schaue ich mich mal um.
Ich habe das Buch nur kurz eingeworfen weil du meintest es gaebe keine gute Dokumentation. Ich sollte dich warnen, dass du es eher nicht billig bekommen wirst. Wenn du aber awk richtig verstehen willst, dann lese es, denn es beschreibt vor allem die Sprache an sich.

Wenn du aber nur ab und zu mal was mit awk programmieren willst, dann brauchst du das Buch nicht unbedingt. Dann ist ``SED & AWK (ge-packt)'' von Thesing beim mitp-Verlag die bessere Wahl. Das Buechlein ist sehr praxisorientiert. Ich kann es ebenso voll empfehlen.
Wie es aussieht bist du der awk-Insider!
Ich konnte schon einiges im Internet finden, meine Probleme sind schon fast gelöst. Wenn ich aber weiter arbeiten möchte, werde ich wohl das Buch kaufen müssen.

Antworten