# wc.awk --- count lines, words, characters # # Arnold Robbins, arnold@skeeve.com, Public Domain # May 1993 # Options: # -l only count lines # -w only count words # -c only count characters # # Default is to count lines, words, characters # # Requires getopt() and file transition library functions BEGIN { # let getopt() print a message about # invalid options. we ignore them while ((c = getopt(ARGC, ARGV, "lwc")) != -1) { if (c == "l") do_lines = 1 else if (c == "w") do_words = 1 else if (c == "c") do_chars = 1 } for (i = 1; i < Optind; i++) ARGV[i] = "" # if no options, do all if (! do_lines && ! do_words && ! do_chars) do_lines = do_words = do_chars = 1 print_total = (ARGC - i > 1) } function beginfile(file) { lines = words = chars = 0 fname = FILENAME } function endfile(file) { tlines += lines twords += words tchars += chars if (do_lines) printf "\t%d", lines if (do_words) printf "\t%d", words if (do_chars) printf "\t%d", chars printf "\t%s\n", fname } # do per line { chars += length($0) + 1 # get newline lines++ words += NF } END { if (print_total) { if (do_lines) printf "\t%d", tlines if (do_words) printf "\t%d", twords if (do_chars) printf "\t%d", tchars print "\ttotal" } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
alarm.awk | File | 2.31 KB | 0644 |
|
anagram.awk | File | 1.33 KB | 0644 |
|
awksed.awk | File | 515 B | 0644 |
|
cut.awk | File | 3.61 KB | 0644 |
|
dupword.awk | File | 507 B | 0644 |
|
egrep.awk | File | 1.91 KB | 0644 |
|
extract.awk | File | 1.74 KB | 0644 |
|
guide.awk | File | 165 B | 0644 |
|
histsort.awk | File | 283 B | 0644 |
|
id.awk | File | 1.22 KB | 0644 |
|
igawk.sh | File | 3.11 KB | 0644 |
|
indirectcall.awk | File | 952 B | 0644 |
|
labels.awk | File | 1014 B | 0644 |
|
split.awk | File | 1.17 KB | 0644 |
|
tee.awk | File | 770 B | 0644 |
|
testbits.awk | File | 729 B | 0644 |
|
translate.awk | File | 1.15 KB | 0644 |
|
uniq.awk | File | 2.64 KB | 0644 |
|
wc.awk | File | 1.45 KB | 0644 |
|
wordfreq.awk | File | 347 B | 0644 |
|