about summary refs log tree commit diff
path: root/zanagrams/zanagrams.sh
diff options
context:
space:
mode:
Diffstat (limited to 'zanagrams/zanagrams.sh')
-rwxr-xr-xzanagrams/zanagrams.sh14
1 files changed, 14 insertions, 0 deletions
diff --git a/zanagrams/zanagrams.sh b/zanagrams/zanagrams.sh
new file mode 100755
index 0000000..52f82db
--- /dev/null
+++ b/zanagrams/zanagrams.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+letters="$1"
+dots="$(printf "%s" "$letters" | tr '.[:alpha:]' '.')."
+# TODO: Don't allow repeats unless they actually repeat
+
+letters_used_once="$(printf "%s" "$letters" | sed 's/./\0\n/g' | sort | uniq -c | grep ' 1 '| grep -o '[a-z]$' | tr -d '\n')"
+letters_used_twice="$(printf "%s" "$letters" | sed 's/./\0\n/g' | sort | uniq -c | grep ' 2 '| grep -o '[a-z]$' | tr -d '\n')"
+
+lengthsort() {
+    awk '{ print length, $0 }' | sort -n | awk '{$1=""; print $2}'
+}
+
+# cafe is in the dictionary with an accent
+cat /etc/dictionaries-common/words | sed 's/é/e/g' | grep -i '^['"$letters"']*$' | grep -v "$dots" | grep .... | onceletters.py "$letters_used_once" | onceletters.py "$letters_used_twice" 2 | nearletters.py "$letters" | lengthsort