Я знаю, что ваш учитель не позволит вам использовать awk, но, помимо этого одного упражнения, вы пытаетесь научиться писать сценарии оболочки, к вашему сведению, вот как вы действительно выполняете эту работу в сценарии оболочки:
$ awk -F'[ "]' -v OFS=' = ' '{sum[$2]+=$NF} END{for (id in sum) print id, sum[id]}' file
3.3.3 = 1
2.2.2 = 3
1.1.1 = 5
и вот эквивалент встроенных команд bash, который может или не может быть тем, что вы изучали в классе, а может или не может быть тем, чего ожидает ваш учитель:
$ cat tst.sh
#!/bin/env bash
declare -A sum
while read -r _ id _ cnt; do
(( sum[$id] += "${cnt#\"}" ))
done < "$1"
for id in "${!sum[@]}"; do
printf '%s = %d\n' "$id" "${sum[$id]}"
done
$ ./tst.sh file
1.1.1 = 5
2.2.2 = 3
3.3.3 = 1
См. https://www.artificialworlds.net/blog/2012/10/17/bash-associative-array-examples/ о том, как я использую ассоциативный массив.Это будет на несколько порядков медленнее, чем сценарий awk, и я не уверен на 100%, что он пуленепробиваемый (поскольку оболочка не предназначена для обработки текста, есть много предостережений и ловушек), но он будет работать длявведенные вами данные.