Количество символов в именах папок печати

Количество символов в именах папок печати

Я пытаюсь использовать find . -type d -print | wc -mwhere -mили --charsвывести количество символов в именах папок.

В качестве примера рассмотрим следующий снимок экрана, на котором показано количество символов дляtempFolder+tempFolder+dingdongFolderтолько34, и событие подсчета косых черт и точек все еще40. Почему команда print out43символы? Откуда взялись 3 дополнительных символа?

введите описание изображения здесь

решение1

find . -type d -print | tr -d '\n' | wc -m

trудалит все символы новой строки и wcподсчитает нужное вам количество.

решение2

Видимо, завершающие символы новой строки также считаются символами.

Предположим, вам нужно количество символов в каталоге, вы можете сделать это

$ find -type d -exec bash -c 'echo -n $0 | wc -m' {} \; 
1
12
27

Что в сумме дает искомые 40. Обратите внимание, что echo -nудаляет конечные символы новой строки.

Суммирование этих трех факторов также возможно.

$ find -type d -exec bash -c 'echo -n $0 | wc -m' {} \; | awk '{S+=$1} END  {print(S)}'
40

решение3

Установите массив bash/ksh/zsh ctдля вывода wc -lm, а затем используйте арифметику оболочки.

ct=($(find . -type d -print |wc -lm)); echo $((ct[1]-ct[0]))

Или используйте разделение полей и позиционные параметры:

set $(find . -type d -print |wc -lm); echo $(($2 - $1))

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