Я бы хотел посчитать общее количество строк файлов в другом каталоге. Мой каталог назван по году, например, 2000. Мой код выглядит следующим образом:
OLDIFS="$IFS"
IFS=""
sum=0
for year in $(seq 2014 2015)
do
for filename in "/media/Seagate Backup Plus Drive/uncompressed/$year/*.txt"
do
echo $year;
a=($(wc -l $filename));
sum=$(($sum + $a));
done
done
echo $sum
IFS=$OLDIFS
Я столкнулся с двумя ошибками. Первый касается $ year в поиске по имени файла. Сообщения об ошибках:
2014
2015
wc: '/media/Seagate Backup Plus Drive/uncompressed/2014'$'\n''2015/*.txt': No such file or directory
Вторая ошибка связана с количеством строк.
a=($(wc -l $filename))
Если я запускаю эту строку в моем терминале Ubuntu, она присваивает номер строки a. Как только я поместил его в скрипт и запустил его, используя sh myscript. sh, я получил следующую ошибку
Syntax error: "(" unexpected (expecting "done")
Если я удалил внешнюю скобку, он присваивает строку '1234 finename' а.