Подсчитайте количество файлов во многих папках и подсчитайте количество символов в именах файлов в папках.

Подсчитайте количество файлов во многих папках и подсчитайте количество символов в именах файлов в папках.

У меня есть один вопрос по Linux, который я не могу решить. Я пытался его решить - я также пытался искать на форуме, но не нашел подсказки - или способа решить его.

Вопрос:

Напишите команды, которые подсчитывают количество файлов в папках «Овощи» и «Фрукты» вместе. Ответ должен быть сохранен в файле CounterFood. Разрешено несколько команд.

После выполнения этих команд вам будет предложено сделать следующее:

Общее количество символов в именах файлов в папках «Овощи» и «Фрукты» необходимо добавить в файл CounterFood. Можно использовать несколько команд.

Пытаться

Я думал сделать арифметическую вставку, но такой команды не нашел.

ls -l . Vegetables Fruits  | egrep -c '^-' >> CounterFood

Я пытался посчитать, сколько там файлов, но не смог посчитать две папки вместе. Тогда я придумал это — моя идея — получить доступ к папкам, найти все файлы, а затем посчитать их.

find Vegetables Fruits -type f | wc - >>CounterFood 

Продолжение вопроса напрямую связано с началом. Но начало у меня не получилось - не могу понять почему.

решение1

Часть 1

find Vegetables Fruits -type f -printf "x" | wc -c > CounterFood      # Print "x" for each filename and count them

Часть 2

Если вы имели в видудобавлятьтогда это сработает

namelen=$(find Vegetables Fruits -type f -printf "%f" | wc -c)        # Characters in file names
counterfood=$(cat CounterFood)                                        # Previous total

echo $((namelen + counterfood)) > CounterFood                         # Add them together

Если вы имели в видудобавитьтогда это сработает

find Vegetables Fruits -type f -printf "%f" | wc -c >> CounterFood    # Characters in file names

решение2

Общее количество файлов в обеих папках:

expr `ls -l Vegetables | sed 1d | wc -l` + `ls -l Fruits | sed 1d | wc -l` >> CounterFood

Общее количество символов в именах файлов в обеих папках:

expr `ls Vegetables | wc -c` + `ls Fruits  | wc -c` >> CounterFoods

Надеюсь, это поможет!

Связанный контент