Вы можете использовать расширение параметра, чтобы проверить первые 5 символов строки.
Просто переберите отсортированные имена каталогов.В таком списке каталоги с одинаковым префиксом должны находиться рядом.
$ keep
содержит первый каталог с другим префиксом, $ print
- это флаг, который предотвращает печать $ keep
несколько раз, если есть несколько каталогов с такой же префикс.
#! /bin/bash
printed=0
keep=''
for dir in */ ; do
if [[ ${dir:0:5} == ${keep:0:5} ]] ; then
if ((!printed)) ; then
echo "$keep"
printed=1
fi
echo "$dir"
else
printed=0
keep=$dir
fi
done