看板 Linux 關於我們 聯絡資訊
各位大神好,小弟在這裡就不在這裏裝作小妹了 我遇到一個問題想請教各位 ------------------分隔線------------------ 案例簡介: 就是,我目前有台NAS,我希望將某一個資料夾裡 面的檔案,能夠分配到其他的資料夾裡面,因此要 寫個命令 檔案格式: 目前被分配檔案的資料夾及被分配的檔案都具有 同樣的字段部分,舉例如下: 檔案名稱:109.0.01_100.txt 資料夾名稱:User-100 希望進行的動作是這樣的: 1>>Find /volume1....找到檔案路徑及名字 (因為有多個檔案) 2>>分配到對應的資料夾裡 (比如100>User-100的資料夾) 因此為了要完成上述步驟,可能需要用到字段擷取 再透過傳變數方式定位到資料夾(我心裡是這樣想的) 不知道有木有大神能夠協助我寫這個指令,這對linux 新手如我,實在有點難度 -- godtomanne:alt+f4沒有用? 9/10 00:18 alt:去你媽的       9/10 00:24 F4:你才沒用       9/10 00:25 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 116.236.247.241 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1444216055.A.E88.html ※ 編輯: kioskyline (116.236.247.241), 10/07/2015 19:10:48
HamalAri: bash 環境的話: mv ./*_100.txt ./User-100 10/07 21:30
HamalAri: 除非你有很多層子資料夾,不然不需要出動 find 10/07 21:31
kioskyline: 是这样的 我有很多个档案 每个档案号码不一样 100只是 10/07 23:10
kioskyline: 其中一个 10/07 23:10
kioskyline: 按到殘體字了... 10/07 23:12
kioskyline: 要分配的檔案在同一個資料夾 但數量不定 10/07 23:13
kioskyline: 或是寫Script好像也是可以的 但是我不太會用... 10/07 23:14
OSDBNetwork: 題意看得不是很清楚,一個for loop應該可以解決 10/08 00:20
OSDBNetwork: 給個提示,或許會用到sed "s/\(.*\)_\(.*\).txt/\2/g" 10/08 00:23
HamalAri: for i in `ls -d */|sed 's/.*-//g'`; do 10/08 13:59
HamalAri: mv ./*_${i}.txt ./User-${i}/ 10/08 13:59
HamalAri: done 10/08 13:59
kioskyline: 感謝兩位大大 我先試試看 不行的話再上來請教各位 10/09 13:37