@Х. Д. - На самом деле, правильная ссылка не принято отвечать, но мне удалось-таки найти его через копать оттуда - обновлены принято отвечать со ссылкой. @Джен ...и купить аэропресс ^_^ на самом деле другая хорошая идея, чтобы пытаться скрести его с выпечки соды мыть. Выпечки соды хорошо ест запах, но если все остальное терпит неудачу, это может быть время, чтобы выйти из этой единицы. Это правда. Я знаком с концепцией ковриком, но я не ожидал его на верхней части моего туалета. Или мы могли бы просто иметь ту же систему, но с открытыми комментарии. И поправьте меня, если я ошибаюсь, но разве эти вещи происходят в слепую комментарии, а? Я удалил несколько старых фильмов, и каталоги старые файлы пользователей. Они не появляются с команды `ls` потом, они не появляются после перезагрузки. Чтобы уточнить, ваша цель, чтобы завершить установку `Вирт-менеджера` или все пакеты не в состоянии установить, как описано в вашем посте?

Может, не очень умное решение:

  • сортировка файлов по имени
  • перебрать имена
  • сравниваем персонажей прошлого цикла:

    последние=""
    Общ -1 1 $ | СНП | в то время как чтение файла; делать
    суб=${файл:0:3}
     [ "$последний раз" != "$суб" ] && { Echo "новое группы"; последнее="$суб"; }
     Эхо "[$суб] файл$"
    сделано
    

Вместо Эхо-Инг собрать имена файлов внутри массива ...

Просто идея ... пример выходных данных:

НОВАЯ ГРУППА 
[На Hi8] Ні-8-01-002.Ави 
НОВАЯ ГРУППА 
[С VHS] НА VHS-01-001.Ави 
[С VHS] НА VHS-01-002.Ави
[С VHS] НА VHS-02-002.Ави
НОВАЯ ГРУППА
[XZU] XZU

Редактировать 1: на основе Энтони Гейган 'ы ответ избежать труб в начале цикла и использовать bash подстановка. Взгляните на его комментарий.

Улучшен скрипт:

последние=""
для файл в *Ави; делать
суб=${файл:0:3}
 [ "$последний раз" != "$суб" ] && { Echo "новое группы"; последнее="$суб"; }
 Эхо "[$суб] файл$"
сделано

Правка 2:

как и просил @ Тони Тан в своем третьем комментарии: здесь вы найдете готовое решение с прямыми анализа собранных имена файлов функция. Есть много способов сделать это. И я не имею большого опыта в написании сценариев для интерпретатора bash ... ;)

#!/бин/Баш

SOURCE_DIR="$1"
компакт-диск "$SOURCE_DIR" || { эхо "не удалось прочитать реж '$SOURCE_DIR'"; покинуть 1; }

parseFiles функция() {
 Эхо "парсинг файлов:"
 Эхо "$1"
}

последние=""
объявить -группе

для файл в *Ави; делать
 # первые 3 символа имени файла
суб=${файл:0:3}

 если тест -з "долларов"; затем
 # последний пуст. первый цикл
последние="$суб"
 тест Элиф "долларов" != "$суб"; затем
 # новый файл группа обнаружена, разбирать собираются
 parseFiles "${файловую группу[*]}"
 # сброс массива
файловая группа=()
последние="$суб"
интернет

 # добавить имя в массив
файловую группу[${#файловую группу [@]}]=файл$
сделано

parseFiles "${файловую группу[*]}"