2013-10-13 39 views
0

我有一個腳本是爲了幫助轉換視頻,然後將其上傳到我們的網站而創建的。我們的視頻都有一個標準格式的文件名,以幫助正確設置它們(日,月,年;即09OCT2013.m4v)。他們每年到每月都會登錄目錄(即2013/oct/09OCT2013/09OCT2013.m4v)。現在,我的腳本通過詢問年份和月份的用戶輸入以及文件夾的實際文件名來打開。我想要做的是將已經創建的文件放入腳本中,然後讓腳本將其分開並放入相應的文件中(即將文件12JUN2012.m4v放入腳本並自動運行腳本把它寫入2012年6月12日/)。有沒有任何可能的方式在終端做到這一點?請讓我知道,如果我的問題的任何部分不清楚。分割文件名到定義變量

回答

0

假設你正在使用bash

for file in "[email protected]" 
do 
    dd=${file:0:2} 
    mm=${file:2:3} 
    yy=${file:5:4} 
    mv "$file" "$yy/$mm/$file" 
done 

如果文件需要進一步的移動,或者與更多的供應路徑,可以調整劇本,但分裂的最後一個組件的基本思路使用子串符號的文件名稱是好的。

+0

這工作得很好!謝謝!我必須找到一種方法來從文件本身獲取文件路徑,但一旦我明白了這一點,我就很樂意去了。 – calebsurface

+0

'basename'是刪除路徑的經典技術(也可以是後綴),'dirname'是從路徑獲取目錄的經典技術。現在,'$ {file ## * /}'與'basename'相同(除去後綴),'$ {file%/ *}'作爲'dirname',除非沒有目錄名('dirname'產生'.',但'$ {file%/ *}'產生文件名)。 –