Aqui está um script de shell que apenas imprime o número de mesmos caracteres sem fazer qualquer formatação:
#!/bin/bash
solutions="ACABDB"
input="Charlie A.,ADABDC
George B.,ACABDD"
IFS=$'\n'
for line in $input; do
name=${line%,*}
answers=${line#*,}
correct=0
for i in $(seq ${#solutions}); do
[ ${answers:$i:1} == ${solutions:$i:1} ] && ((correct++))
done
echo "$line,$correct"
done
E uma versão em Ruby que formata os resultados como uma tabela monoespaçada:
solutions = "ACABDB"
"Charlie A.,ADABDC
George B.,ACABDD".split("\n").each { |line|
name, answer = line.split(",")
correct = 0
(0...solutions.length).each { |i|
correct += 1 if answer[i] == solutions[i]
}
puts "#{"%-17s" % name}#{"%-20s" % answer.split("").join(" ")}#{correct}/#{solutions.length}"
}
Você pode salvar os scripts com o TextEdit (no modo de texto simples) e depois executá-los no Terminal com algo como bash ~/Desktop/script.sh
ou ruby ~/Desktop/script.rb
.