→ bitlife: 直接用wildcard來更改檔名會不會好一點? 07/02 20:52
是用「*」嗎?
推 danny8376: 我覺得大概是big5編碼檔名吧? 07/02 22:36
我用big5內碼去search,無法匹配,看起來好像不是
→ losepacific: find . -regextype egrep -regex \ 07/03 00:22
→ losepacific: '..*[^a-zA-Z0-9_-.)( /][^a-zA-Z0-9_-.)( /]*..*' 07/03 00:22
→ losepacific: 剛剛測試find的正規表示,寫了這麼長才抓到直中文名 07/03 00:23
→ losepacific: 中文檔名改碼或許可以找找關鍵字urlencode 07/03 00:26
→ losepacific: python2 -c "import urllib, sys 07/03 00:27
→ losepacific: print urllib.quote(sys.argv[1])" 4567889-我.txt 07/03 00:29
→ losepacific: 在utf8環境下會輸出4567889-%E6%88%91.txt 07/03 00:29
→ losepacific: perl -MURI::Escape -e 'print 07/03 01:29
→ losepacific: uri_escape($ARGV[0])."\n";' "123-稍快.txt" 07/03 01:29
→ losepacific: 2> /dev/null 07/03 01:30
→ losepacific: 在utf8環境下會輸出123-%E7%A8%8D%E5%BF%AB.txt 07/03 01:31
謝謝,我試著search這些關鍵字
今天試了一下,有個檔名是 501111_我愛PTT.txt
顯示為 501111_??+?{PTT.txt
用 .* 可以找的到
用 .*_.*PTT.* 變找不到了
表示中文無法匹配點號嗎? 但.*又可以匹配Orz
→ bitlife: 你的linux有原生支援中文嗎? 原則上在中文utf-8環境,句點 07/03 11:13
→ bitlife: 可以match中文,那些亂碼已不是中文字,所以.只能match一字 07/03 11:14
→ bitlife: 元 07/03 11:14
→ bitlife: 另外你的第2個regex,有greedy的問題,要使用修飾,我比較熟 07/03 11:15
→ bitlife: 程式語語用的regex, command line的不是很確定 07/03 11:16
→ bitlife: 抱歉,我看錯了,上面15,16分的推文請忽略 07/03 11:18
謝謝,我試試把整個系統改成zh_TW.utf8看看
做為小菜鳥,我放棄在LINUX上做了一.一
用find . -regextype egrep -regex ".*_[[:alnum:]].*"|xargs -i mv {} ./file
把所有正確的檔抓出來
剩的拉到windows上修改檔名
※ 編輯: cherubx (61.66.243.96), 07/03/2015 16:29:58