Извлечь имена файлов со структурой каталога в 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 | 

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

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 поле
  • SSH + Sudo + Ожидайте в сценарии Bash: Запустите команду с sudo на удаленной машине
  • Настройте галочку для автоматического переключения между LAN и WLAN
  • mkfs.xfs / dev / custom_dev
  • Почему vi явно нарушена (ошибка viminfo E576), и как я могу ее исправить?
  • Чтение содержимого файла ELF (программно)
  • Настройка файловых ассоциаций в Ubuntu с вином
  • Не удается достичь внешней сети или IP после обновления до Ubuntu 12.04
  • Каков наилучший способ подражать клавишам с ярлыками тачпада?
  • Нет такого файла или каталога при перемещении файла
  • Интернет не работает без установленного gpu?
  • Справка, Ubuntu выходит из строя ненормально
  • Отсутствие выхода при использовании winFF
  • Linux и Unix - лучшая ОС в мире.