[問題] 大量檔名處理請教

看板Linux作者 (DanzYam)時間10年前 (2015/06/22 10:16), 10年前編輯推噓1(1011)
留言12則, 5人參與, 最新討論串1/1
各位好,我是個linux新手Orz,有個問題想跟大家請教下 工作上有大量檔名(10萬筆以上)處理的需求,檔名方式約如下 編號─日期─帳號.副檔名 如 5001010-20060709-wow.txt 5001863-20060703-lol.wav 有時需要抓某個數字以後的檔,如:抓出5000000~5001100 有時需要抓某帳號的檔名,如:wow、lol、kerker 有時需抓某副檔名如:.txt、.wav、.wc 副檔名的部份比較好解 用 mv rename *.副檔名 但編號跟帳號這部份我就不知道怎麼做了 看過sed awk egrep這些公用程式 egrep的可以用正則處理文字,但檔名好像沒辦法。 不知道我應該再補充哪方面的知識呢?謝謝 Dan -- 不過是人 http://www.facebook.com/twaiting -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.66.243.96 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1434939401.A.9A2.html ※ 編輯: cherubx (61.66.243.96), 06/22/2015 10:20:01

06/22 11:06, , 1F
awk split 查一下用法
06/22 11:06, 1F

06/22 15:43, , 2F
用python? 把檔名讀近來用split切
06/22 15:43, 2F

06/22 20:16, , 3F
xargs + mv + sed
06/22 20:16, 3F

06/22 21:29, , 4F
把檔名用ls之類的工具餵給管線'|'然後當成文字檔處理
06/22 21:29, 4F

06/22 21:30, , 5F
標準輸入的部分,把內容處理成一條一條你期望的指令
06/22 21:30, 5F

06/22 21:30, , 6F
然後再透過管線餵給bash
06/22 21:30, 6F


06/22 21:47, , 8F
概念像是上篇連結裡提及的那樣。(推這一系列文章)
06/22 21:47, 8F
謝謝各位 後來用了 find . -regextype egrep -regex "REGEX SYNTAX" |xargs mv {} file ※ 編輯: cherubx (61.66.243.96), 06/23/2015 09:55:14 ※ 編輯: cherubx (61.66.243.96), 06/23/2015 09:58:30

06/23 19:26, , 9F
xargs mv {} file ??? 這語法有點問題,結果整個錯誤
06/23 19:26, 9F

06/23 19:26, , 10F
xargs 看不懂 {}, 所以當作一般檔案名稱
06/23 19:26, 10F

06/23 19:27, , 11F
正確方式是使用 -I 指定這類需求
06/23 19:27, 11F

06/23 19:27, , 12F
blah........ | xargs -I '{}' mv {} /path
06/23 19:27, 12F
太謝謝了Orz,一開始沒細看 -I參數的做用。 ※ 編輯: cherubx (124.155.187.95), 06/23/2015 23:01:52
文章代碼(AID): #1LXt09cY (Linux)
文章代碼(AID): #1LXt09cY (Linux)