Извлечь имена файлов со структурой каталога в CSV-файл (отдельный файл csv для каждого имени изображения)

У меня есть структура папок, например: –

Type1 Type 2 | | ---------------------------------------------------------------------------------------- | | | subType1 subType2 subType1 | | | ---------------------------------------------------------------------------------------------------------- | | | | | | typeA typeB typeA typeB typeA typeB ------------------------------------------------------------------------------------------------------------- | | | | | | | | | | | | | | | | | | F1 F2 F3 F1 F2 F3 F1 F2 F3 F1 F2 F3 F1 F2 F3 F1 F2 F3 | | | | | | | | \/ \/ \/ \/ -------------------------------------------------------------------------------------------------------------- | | | | | | | | | | black red blue black red black red blue black red 

В каждой папке цвета есть некоторые изображения 🙁 и многие другие)

  Type1-subType1-typeA-black-dfsdf1.JPG Type1-subType1-typeB-black-one.JPG Type1-subType1-typeA-red-dfsdf1.JPG Type1-subType1-typeB-red-one.JPG Type1-subType1-typeA-blue-dfsdf1.JPG Type1-subType1-typeB-black-oh.JPG Type1-subType1-typeA-black-2dsfsdf.JPG Type1-subType1-typeB-red-oh.JPG Type1-subType1-typeA-red-2dsfsdf.JPG Type1-subType1-typeA-blue-2dsfsdf.JPG Type1-subType1-typeA-black-3asdfdf3.JPG Type1-subType1-typeA-red-3asdfdf3.JPG Type1-subType1-typeA-blue-3asdfdf3.JPG Type1-subType2-typeB-black-SSS.JPG Type2-subType1-typeB-black-5.JPG Type1-subType2-typeB-red-SSS.JPG Type2-subType1-typeB-black-5.JPG Type1-subType2-typeB-blue-SSS.JPG Type2-subType1-typeB-black-565.JPG Type1-subType2-typeB-black-AAA.JPG Type2-subType1-typeB-black-565.JPG Type1-subType2-typeB-red-AAA.JPG Type1-subType2-typeB-blue-AAA.JPG 

Я хочу читать каждое изображение и сохранять в отдельный файл csv. Таким образом, формат файла csv будет:
Для структуры папок Type1-subType1-typeA -dfsdf1.JPG into file1.csv

  Image name |colour | subcat| subtype | Type1 | Type1-subType1-typeA-black-dfsdf1.JPG | black | typeA | subType1 | Type1 | Type1-subType1-typeA-red-dfsdf1.JPG | red | typeA | subType1 | Type1 | Type1-subType1-typeA-blue-dfsdf1.JPG | blue | typeA | subType1 | Type1 | 

Для структуры папок Type1-subType1-typeA -2dsfsdf.jpg file2.csv

  Image name |colour | subcat| subtype | Type1 | Type1-subType1-typeA-black-2dsfsdf.JPG | black | typeA | subType1 | Type1 | Type1-subType1-typeA-red-2dsfsdf.JPG | red | typeA | subType1 | Type1 | Type1-subType1-typeA-blue-2dsfsdf.JPG | blue | typeA | subType1 | Type1 

И так далее для других папок также. Как я могу получить желаемый результат?

Примечание. Название изображения отражает структуру папок.

До сих пор я читал все изображения из разных папок в один файл csv. Вот мой вывод:

  Image name |colour | subcat| subtype | Type1 | Type1-subType1-typeA-black-dfsdf1.JPG | black | typeA | subType1 | Type1 | Type1-subType1-typeA-red-dfsdf1.JPG | red | typeA | subType1 | Type1 | Type1-subType1-typeA-blue-dfsdf1.JPG | blue | typeA | subType1 | Type1 | Type1-subType1-typeA-black-2dsfsdf.JPG | black | typeA | subType1 | Type1 | Type1-subType1-typeA-red-2dsfsdf.JPG | red | typeA | subType1 | Type1 | Type1-subType1-typeA-blue-2dsfsdf.JPG | blue | typeA | subType1 | Type1 | Type1-subType1-typeA-black-3asdfdf3.JPG | black | typeA | subType1 | Type1 | Type1-subType1-typeA-red-3asdfdf3.JPG | red | typeA | subType1 | Type1 | Type1-subType1-typeA-blue-3asdfdf3.JPG | blue | typeA | subType1 | Type1 | Type1-subType2-typeB-black-SSS.JPG | black | typeB | subType2 | Type1 | Type1-subType2-typeB-red-SSS.JPG | red | typeB | subType2 | Type1 | Type1-subType2-typeB-blue-SSS.JPG | blue | typeB | subType2 | Type1 | Type1-subType2-typeB-black-AAA.JPG | black | typeB | subType2 | Type1 | Type1-subType2-typeB-red-AAA.JPG | red | typeB | subType2 | Type1 | Type1-subType2-typeB-blue-AAA.JPG | blue | typeB | subType2 | Type1 | 

Пожалуйста, предложите, как я могу достичь желаемого результата.

  • Подключение к хосту, закрытое удаленным хостом. Статус выхода -1
  • Устройство Raid5 имеет меньше пространства, чем ожидалось
  • Сервер NFS вызывает высокую нагрузку даже в режиме ожидания
  • Проблема с использованием модемов GSM USB на ноутбуке HP Pavilion
  • Как отключить wlan0 при выключении
  • «Невозможно разрешить имя хоста» - как очистить имя хоста без перезагрузки
  • Отправьте команду на отдельный экран и получите вывод
  • Есть ли способ автоматического включения Ubuntu?
  • One Solution collect form web for “Извлечь имена файлов со структурой каталога в CSV-файл (отдельный файл csv для каждого имени изображения)”

    как правило, вам не следует анализировать вывод ls, однако предполагая, что у вас нет «смешных» имен (например, пробел или разрыв строки).

    Я бы использовал awk для разбора имени файла

     ls | awk -F- '{printf "%s,%s,%s,%s,%s,\n",$0,$4,$3,$2,$1}' > file.csv 

    где

    • -F- сказать awk для использования – как разделитель
    • $0 целая строка
    • $4..$1 поле
    Linux и Unix - лучшая ОС в мире.