CNT(1): count lines, words, runes, and bytes __________________________________________________ USAGE usage: cnt [-Dabclmnruw] {file} -D: debug -a: count all messages and not just data msgs -b: count just bytes -c: count just characters -l: count just lines -m: count just msgs -n: print just totals -r: count just runes -u: use unix output -w: count just words DESCRIPTION Cnt counts messages, lines, words, runes, and bytes in the given files. A word is defined as a series of non-control, non- separation-punctuation, and non-space runes at the start of a file or after a non-word rune. A rune is considered as separation-punctuation if it is punctuation and non-dash and non-connector. This definition is not compatible with the venerable wc UNIX command, but it is more accurate. If no file is given, the program prints just the count(s). Otherwise, it prints the count(s) followed by the name of each file. All counters are printed by default, unless a flag says otherwise. EXAMPLE % lf -g , | cnt -u 1 72 191 1220 1220 all/all.go 1 33 66 420 420 all/all_test.go 1 60 209 1311 1311 auth/auth.go 1 163 501 2966 2966 ch/ch.go 1 630 1806 11475 11475 cmd.go The same may be achieved running % cnt -u , Grep for struct or var declarations in go sources, filter only those that do not contain ix, and count the words in them: % lf -g ,~*.go | gr -xf '^(struct|var)' '^(}|\))\n' | gr -xfve ix | gr -xf '[a-zA-Z]+' | cnt -mu 15 0 1 49 49 ix.go The pipe selects each word and sends a message for each one, and then counting the messages produces the expected result. SOURCE +o /zx/sys/src/clive/cmd/cnt __________________________________________________ User's manual. Section 1. Copyright © LSUB 2014-2016