Добавление количества строк файлов в разных каталогах с помощью Bash - PullRequest
0 голосов
/ 03 марта 2020

Я бы хотел посчитать общее количество строк файлов в другом каталоге. Мой каталог назван по году, например, 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' а.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...