С GNU find
вы можете использовать -printf
для печати того, что вы хотите, например, c
для каждого файла, соответствующего .coded
и "r" для каждого файла, соответствующего .read
, а затем использовать awk, чтобы подсчитать, сколько у вас каждого:
find -type f \
\( -name '*.coded*' -printf 'c\n' \) \
-o \
\( -name '*.read*' -printf 'r\n' \) \
| awk '{ ++a[$0] } END{ printf "%d | %d\n", a["c"], a["r"] }'
Кстати, ваши шаблоны grep соответствуют Xcoded
и Yread
или действительно чему-либо за ваш период; если это буквальный период, его нужно экранировать, как в '\.coded'
и '\.read'
. Кроме того, если ваши имена файлов содержат разрывы строк, ваш счетчик отключен.