我的資料夾結構如下:-
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
第-個字段