Path: utzoo!attcan!uunet!mcsun!unido!quando!omerzu From: omerzu@quando.quantum.de (Thomas Omerzu) Newsgroups: comp.unix.wizards Subject: Re: awk arguments Message-ID: <1650@quando.quantum.de> Date: 23 Jul 90 19:46:10 GMT References: <290@sun13.scri.fsu.edu> Reply-To: omerzu@quando.quantum.de (Thomas Omerzu) Organization: Quantum GmbH, Dortmund, W-Germany Lines: 66 In article <290@sun13.scri.fsu.edu> mayne@VSSERV.SCRI.FSU.EDU (William (Bill) Mayne) writes: | Does | awk '{print $0; print $Y}' Y=X | print lines from standard input separated by a line containing "X" | or does it print lines from the file Y=X separated by blank lines, | since without the assignment the value Y in awk should be null? [...] | In fact it does neither. In this case, whether a | file named Y=X exists or not, standard input is not read and | nothing is printed. Obviously awk thinks that filenames are present if _anything_ follows after the program; in that case the standard input is not read. You can avoid this by using '-' as filename argument. If you add a '-' to your example, it will still not work. Actually varibles are referenced in awk programs _without_ a leading '$'. Thus awk '{print $0; print Y}' Y=X - will do the job: read standard input an print contents of every line followed by a line containing the value of 'Y'. | I have never been able to get the command line assignment of | awk variables to work. I have sometimes resorted to ugly kludges | like using sed to modify an awk program to hard code argument | values. Surely I have missed something obvious. exactly: it was the '$'. :-) | While I am on the subject of awk: I learned about the language | from the book "The AWK Programming Language" by Kernighan et. al. | before I started working on unix. I have been disappointed to | find that the version actually available on every flavor of unix | I have seen is much weaker than the full version described by the | book. Are there better versions out there? Well, I don't know that book and thus I don't know what weaknesses you're pointing at. Maybe you could tell us something more specific? I've always been quite satisfied with the abilities of 'awk' - except of one point: the error checking of program scripts. You'll nearly ever get 'bailing out near line ...'. That point would have been worth of being mentioned in the 'bug' section of the manual for awk. -- *-----------------------------------------------------------------------------* Thomas Omerzu UUCP: ...!unido!quando!omerzu / omerzu@quando.uucp Quantum GmbH, Bitnet: UNIDO!quando!omerzu / omerzu%quando@UNIDO(.bitnet) Dortmund, Germany Internet: omerzu@quando.quantum.de