aboutsummaryrefslogtreecommitdiff
path: root/2016/04/puzzle-2.sh
blob: 3e2c333ad10e5e0fa0e974801e0af33761c6c9d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh

# This is slow, but it’s fun!  That’s what counts!

while IFS='[]' read -r line cksum; do
	sid=`echo $line | grep -o '[0-9]*'`
	echo $line \
		| tr -d -- '-0-9\n' \
		| sed 's/./&\n/g'   \
		| sort              \
		| uniq -c           \
		| sort -k1nr        \
		| head -n5          \
		| awk "{ s = s \$2 } END { if (s == \"$cksum\") print \"$line\" }"
done <input | \
	while read -r line; do
		for i in `seq 25`; do
			echo $line | tr $(printf %${i}s | tr ' ' '.')\a-z a-za-z
		done
		# The call to head(1) allows us to exit the moment we find the
		# first match.
	done | grep north | grep -o '[0-9]*' | head -n1
# END PART 2