看板 Linux 關於我們 聯絡資訊
各位好,我是個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
dou0228: awk split 查一下用法 06/22 11:06
qoo1991: 用python? 把檔名讀近來用split切 06/22 15:43
firejox: xargs + mv + sed 06/22 20:16
losepacific: 把檔名用ls之類的工具餵給管線'|'然後當成文字檔處理 06/22 21:29
losepacific: 標準輸入的部分,把內容處理成一條一條你期望的指令 06/22 21:30
losepacific: 然後再透過管線餵給bash 06/22 21:30
losepacific: http://user.frdm.info/ckhung/b/re/net.php 06/22 21:46
losepacific: 概念像是上篇連結裡提及的那樣。(推這一系列文章) 06/22 21:47
謝謝各位 後來用了 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
kenduest: xargs mv {} file ??? 這語法有點問題,結果整個錯誤 06/23 19:26
kenduest: xargs 看不懂 {}, 所以當作一般檔案名稱 06/23 19:26
kenduest: 正確方式是使用 -I 指定這類需求 06/23 19:27
kenduest: blah........ | xargs -I '{}' mv {} /path 06/23 19:27
太謝謝了Orz,一開始沒細看 -I參數的做用。 ※ 編輯: cherubx (124.155.187.95), 06/23/2015 23:01:52