網域名稱俱樂部

網域名稱俱樂部 (https://www.domainclub.org/index.php)
-   電腦網路相關技術 (https://www.domainclub.org/forumdisplay.php?f=16)
-   -   跪求幫忙 (https://www.domainclub.org/showthread.php?t=8731)

domainplayer 2005-12-05 11:08 PM

跪求幫忙
 
請教各位!!
教授要我編輯藥學年刊,
丟了幾百個學者專家投搞的檔案給我...

檔名的格式如下:

PC-001-論文名.doc
.
.
.
PC-673-論文名.doc


問題來了...
裡面可能有些檔案是重複的
例如PC-059-Biflavonoids from Clusia rosea.doc
PC-405-Biflavonoids from Clusia rosea.doc這兩個檔名其實是相同的,
差別只在開頭PC-後面的數字, 主要是因為投稿者在不同時間重複送出造成的...

因為檔名前包含數字, 我沒法使用按字母順序排列來檢查哪些是重覆的,
請問有人知道我該怎麼做, 才能找出那些重複的檔案嗎?? ~dead

一個一個找會找到眼花..
懇求各位告知祕技!!
PS. 相同檔名的檔案大小可能會不同,
因為有的人重覆修改寄出了好幾次....

monkey 2005-12-05 11:26 PM

給你一個祕技...

你就把他從 pc-001 一直排到pc-673就可以了

^^"

domainplayer 2005-12-05 11:33 PM

啥咪意思><"
monkey兄可以請你詳細解釋一下嗎??

licheng 2005-12-05 11:54 PM

引用:

作者: domainplayer
因為檔名前包含數字, 我沒法使用按字母順序排列來檢查哪些是重覆的,
請問有人知道我該怎麼做, 才能找出那些重複的檔案嗎??

那麼,如果兩個檔案內容是一樣的﹝只做了些微的修改﹞,除了檔名前面的 PC-xxx,後面的檔名,應該是相同的,是不是?

如果是的話,問題就簡單了。

先將所有的檔案,擺在同一個目錄底下,開一個 DOS 視窗,切換到擺置檔案的目錄,然後下達:

dir *.doc /b > output.txt

將 output.txt 的內容刪除前面的 PC-xxx,再排序,就可以找出哪些是重複的檔案。

刪除前面的 PC-xxx,我是使用 Unix 的 sed 指令。用 vim 也可以。

至於排序的方式很多。我是使用 Unix 移植到 Win32 的一個指令 sort,不知道 Windows 底下有沒有其他類似的東西?

大不了,你將 output.txt 的內容 pm 給我,我將排序結果 pm 給你。

game.tw 2005-12-06 12:21 AM

引用:

作者: licheng
那麼,如果兩個檔案內容是一樣的﹝只做了些微的修改﹞,除了檔名前面的 PC-xxx,後面的檔名,應該是相同的,是不是?

如果是的話,問題就簡單了。

先將所有的檔案,擺在同一個目錄底下,開一個 DOS 視窗,切換到擺置檔案的目錄,然後下達:

dir *.doc /b > output.txt

將 output.txt 的內容刪除前面的 PC-xxx,再排序,就可以找出哪些是重複的檔案。

刪除前面的 PC-xxx,我是使用 Unix 的 sed 指令。用 vim 也可以。

至於排序的方式很多。我是使用 Unix 移植到 Win32 的一個指令 sort,不知道 Windows 底下有沒有其他類似的東西?

大不了,你將 output.txt 的內容 pm 給我,我將排序結果 pm 給你。

上方提供的範例中的兩個相同檔案是
PC-059-Biflavonoids from Clusia rosea.doc與
PC-405-Biflavonoids from Clusia rosea.doc
若刪除前方的 PC-???-再進行排序,雖可得到結果,
但卻得不到前面的編號....
兩個或多個Biflavonoids from Clusia rosea.doc ,是沒有意義的...
因為沒有前面的編號,無法確定前面的檔名編號為何,無法進行後續動作

所以產生的結果,應該包含原有的完整檔名,又排序編號後方的檔案,
這樣對Domainplayer才有意義!

必須從第8個字開始進行排序!

game.tw 2005-12-06 12:27 AM

看了自己的回覆之後,想了一個用Windows解決的可能方式...
一樣需要輸出output.txt ,用編輯程式去換前的檔案資訊,只留下檔案列表!
開一個Excel ,並用 資料 -> 匯入 功能,把output.txt匯進來...
分隔方式選擇 "-" ,這樣滙入的格式會變成
PC 059 檔名
再用資料中的排序,將檔名作擴大排序...
應該就可以了.......

我用想的,沒實際運作,但應該可行!

licheng 2005-12-06 12:30 AM

引用:

作者: game.tw
PC-059-Biflavonoids from Clusia rosea.doc與
PC-405-Biflavonoids from Clusia rosea.doc
若刪除前方的 PC-???-再進行排序,雖可得到結果,
但卻得不到前面的編號....
兩個或多個Biflavonoids from Clusia rosea.doc ,是沒有意義的...
因為沒有前面的編號,無法確定前面的檔名編號為何,無法進行後續動作

不會沒有意義的。

譬如,已經取得 output.txt 列表,並找出

Biflavonoids from Clusia rosea.doc

這個相同的檔名,那麼,只要以該檔名為關鍵字,在 output.txt 裡面搜尋,就可以找出有哪些編號的檔案,包含 Biflavonoids from Clusia rosea.doc。如此,自然就找出哪些檔案是重複的。

前提是,相同的檔案,除了 PC-xxx 之外,檔名也必須相同。

通常,只要 uniq 這個指令,就可以很快找出重複者是誰。

licheng 2005-12-06 12:33 AM

引用:

作者: game.tw
看了自己的回覆之後,想了一個用Windows解決的可能方式...
一樣需要輸出output.txt ,用編輯程式去換前的檔案資訊,只留下檔案列表!
開一個Excel ,並用 資料 -> 匯入 功能,把output.txt匯進來...
分隔方式選擇 "-" ,這樣滙入的格式會變成
PC 059 檔名

刪除 PC-xxx- 這個動作,只要一個 cut 指令即可。不需要用到 Excel....

哈啦 2005-12-06 12:37 AM

還是請各位專家幫domainplayer直接處理比較快吧。:)

game.tw 2005-12-06 12:48 AM

引用:

作者: licheng
刪除 PC-xxx- 這個動作,只要一個 cut 指令即可。不需要用到 Excel....

Licheng兄所提的,都是 正規表示式.... ~youarebe:
是我一直想學的.....
目前只會用單一個 grep 來看東西~_~!!!
像是 ps -l | grep corn 這樣
其他的都不太懂,也就更不敢用了....
Domainplayer的問題....
在Linux中,其實就不用那麼頭痛了.........

ps:當下正在鳥哥的站內努力中 :shutup


所有時間均為 +8。現在的時間是 10:36 PM

Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.