Я делаю проект для своего университета, и это первый раз, когда я пишу код с использованием Bash.
Я пытаюсь пройти через документ .txt, читая каждую строку и получая информациюМне нужно сделать сумму.
. Текст документа выглядит примерно так:
83210: Энрике Гаспар: EIB2: 911235444: metas@gmail.com: carro: BMW:82-RX-14: 5: 25: 26 88110: Васко Рапидо: IB2: 962222222: vrapid@gmail.com: mota: BMW: 33-MT-99: 3: 5: 16 88020: Мария Агияр: EIB2: 911555444:mguiar@gmail.com: carro: mercedes: 88-TX-11: 2: 20: 12
И для того, что я делаю, мне нужно сделать общую сумму последнего числа каждого пользователя,поэтому 26 + 16 + 12.
Вот мой код:
#!/bin/bash
echo -n "Nº de condutores: "
echo $(cat condutores.txt | wc -l)
echo -n "Nº de passageiros: "
echo $(cat passageiros.txt | wc -l)
echo -n "Saldo total dos condutores: "
x=0
linhas=$(cat condutores.txt | wc -l)
i=0
while [[ $i -le $linhas ]]; do
sum=$(cat condutores.txt | head -$i | tail -$(( $linhas + 1 - $i )) | cut -d':' -f11)
x=$((x+sum))
i=$((i+1))
done
echo "$x"
Я написал здесь полностью, чтобы ничего не пропустить.
Что важно дляпроблема здесь от строки 7 до 15. Я не знаю, так ли это, я прохожу каждую строку в файлероводник.txt или что-то еще.Но я получаю эту ошибку:
Saldo total dos condutores: ./stats.sh: line 12: 26
16: syntax error in expression (error token is "16")
26
Так что по какой-то причине он читает только первую и вторую строку документа .txt, но не может сделать сумму, может кто-нибудь помочь мне здесь, пожалуйста?Заранее спасибо.