В вашем случае работает следующий сценарий:
find . -mindepth 1 -maxdepth 1 -type d -print0 | while read -rd '' line
do files=("$line"/* "$line"/.*)
count=${#files[@]};((count-=2))
if [ $count -ge 5 ]
then
cp -R "$line" ../newfolder/
fi
done
Примечание: Это должно выполняться из базовой папки, поскольку я использую относительные пути.
Использование замены шаблона в bash версии 4.2 (и выше):
${parameter/pattern/string}
как описано здесьhttp://steve-parker.org/sh/tips/pattern-substitution/
UNICODE_HEX="U+02211"
printf ${UNICODE_HEX/U+/"\U"}
∑
UNICODE_HEX="U+03BB"
printf ${UNICODE_HEX/U+/"\U"}
λ