디렉토리 구조가 포함된 파일명을 CSV 파일로 추출(이미지 이름마다 별도의 csv 파일)

디렉토리 구조가 포함된 파일명을 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

일반적으로 ls의 출력을 구문 분석해서는 안 되지만 '재미있는' 이름(예: 공백 또는 줄 바꿈)이 없다고 가정합니다.

awk를 사용하여 파일 이름을 구문 분석합니다.

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

어디

  • -F-awk에게 - 구분 기호로 사용하라고 지시하세요.
  • $0전선
  • $4..$1-번째 필드

관련 정보