calculates file's average line length
authorChris Koeritz <fred@gruntose.com>
Tue, 6 Apr 2021 21:16:29 +0000 (17:16 -0400)
committerChris Koeritz <fred@gruntose.com>
Tue, 6 Apr 2021 21:16:29 +0000 (17:16 -0400)
this produces a total that includes blank lines in the average and
another that excludes the blank lines.

scripts/text/average_line_length.sh [new file with mode: 0644]

diff --git a/scripts/text/average_line_length.sh b/scripts/text/average_line_length.sh
new file mode 100644 (file)
index 0000000..da34438
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+file="$1"; shift
+if [ -z "$file" -o ! -f "$file" ]; then
+  echo This script needs a filename to operate on as a parameter.
+  echo The file will be examined and the average line length calculated.
+  exit 1
+fi
+
+cat "$file" | 
+awk ' { thislen=length($0); # printf("lines %-5s len %d total %d\n", numlines, thislen, totlen);
+  totlen+=thislen 
+  if (thislen != 0) { numlines++ } }
+END { printf("average line length: %d (no blank lines) or %d (counting blank lines)\n", totlen/numlines, totlen/NR); } ' 
+
+