aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-111/abigail/README.md1
-rw-r--r--challenge-111/abigail/awk/ch-2.gawk33
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-111/abigail/README.md b/challenge-111/abigail/README.md
index 5f00924966..53215ce77d 100644
--- a/challenge-111/abigail/README.md
+++ b/challenge-111/abigail/README.md
@@ -50,6 +50,7 @@ to standard output. In case of ties, we print the first one found.
### Solutions
+* [GNU AWK](awk/ch-2.gawk)
* [Perl](perl/ch-2.pl)
### Blog
diff --git a/challenge-111/abigail/awk/ch-2.gawk b/challenge-111/abigail/awk/ch-2.gawk
new file mode 100644
index 0000000000..98ac26a066
--- /dev/null
+++ b/challenge-111/abigail/awk/ch-2.gawk
@@ -0,0 +1,33 @@
+#!/usr/bin/awk
+
+#
+# See ../README.md
+#
+
+#
+# Run as: awk -f ch-2.gawk < input-file
+#
+
+BEGIN {
+ IGNORECASE = 1
+ longest = ""
+ #
+ # Create a pattern /^a*b*...z*$/
+ #
+ pat = "^"
+ for (i = 97; i <= 122; i ++) {
+ pat = pat sprintf ("%c*", i)
+ }
+ pat = pat "$"
+}
+
+#
+# Match words with letters in lexical order; keep longest.
+#
+match ($0, pat) && length ($0) > length (longest) {
+ longest = $0
+}
+
+END {
+ print longest
+}