diff options
| -rw-r--r-- | challenge-111/abigail/README.md | 1 | ||||
| -rw-r--r-- | challenge-111/abigail/awk/ch-2.gawk | 33 |
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 +} |
