Date: prev next · Thread: first prev next last


HI Flo,

On Fri, Mar 18, 2011 at 10:44 AM, Florian Effenberger
<floeff@documentfoundation.org> wrote:

Christian Lohmaier wrote on 2011-03-17 19.44:

Then please replace your ugly hack with this:

hehe, thanks, this looks much better. My script was really, well... don't
tell anyone. :-) Yours works nearly like a charm, except one issue - it
doesn't seem to limit the depth of scanning.

? Cannot even tell from the mail you forwarded what you mean with this.

I've forwarded you one example
mail, where one subscription ID is added to the output...

If you mean the line
/var/spool/mlmmj/zh-tw.libreoffice.org/users/4/0/0 at the bottom, then
this is because there are spurious newlines in the script (I should
have attached it or used shorter lines....)

It is not some depth - the 4 and 0 and 0 are the subscription values I
do print them after the path delimited with /, since then the single
seperator is /, thus makes parsing it with awk easier.

 - in your script it is
print
"------[...]"

but it should be
print "-----------[...]"

The print with no argument doesn't insert an empty line, but just
prints the current inputline, i.e. what is to be parsed/processed by
awk.

Similar error is in the begin block, there you apparently added
another print to insert an empty line (but again without argument -
works here because in begin there is no line read, thus the output is
empty, but still not "nice") before the "table", but now the "-----"
is without any print at all.

So instead of the spurious "print <nothing>", just use \n in the
statement above and make sure no additional newlines are inserted:

#BEGIN { print  "Find below the mailing list statistics for '$(date -I)'"
#  print  "This e-mail has been automatically generated without human
interaction.\n"
#  printf "%40s %8s %8s %8s %8s\n", "Listaddress", "Normal", "Digest",
"Nomail", "Total"
#  print  "----------------------------------------+--------+--------+--------+--------"
#  normal=0;    digest=0;  nomail=0 }
#{ printf "%40s %8d %8d %8d %8d\n", $6"@"$5, $7, $8, $9, $7+$8+$9
#  normal+=$7; digest+=$8; nomail+=$9 }
#END { print  "----------------------------------------+--------+--------+--------+--------"
#  printf "%40s %8d %8d %8d %8d\n", "All lists", normal, digest,
nomail, normal+digest+nomail}'

Seperate lines flagged with "#" at the beginning.
Note the additional \n" on the second line to replace the empty
"print" that was there below,
note the additional "print" before the line that prints the
delimiter-lines in the begin block, and also note the removed
linebreak between "print" and "-----" in the end-block.
(that print statement was causing the line
/var/spool/mlmmj/zh-tw.libreoffice.org/users/4/0/0 to appear in the
output - that is just the last input line, and as mentioned print
without argument just prints the current input line.

ciao
Christian

-- 
E-mail to moderators+help@documentfoundation.org for instructions on how to unsubscribe
List archives are available at http://listarchives.documentfoundation.org/www/moderators/
All messages you send to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.