2008-12-26 119 views
2

我經常需要根據一些標準來複制,移動或重命名文件和目錄,因爲我從許多資源收集數據,並且我喜歡將事情組織起來。什麼腳本語言爲這些操作提供最直觀,最簡單的方法?下面是一個示例場景:什麼是基本文件操作的良好腳本語言?

我把我的音樂文件夾層次結構如下圖所示:

&Artist Name(upper case letters)& 
-- (&album release year&) &album name& 
---- \*.* 

我想找出哪些文件夾打破在我的音樂文件夾這些規則。如果它們具有一致但不同的文件命名和目錄方案結構,我也想使它們適合我使用的結構。我在Windows和Linux上工作,所以我想給bash一個嘗試(感謝cygwin),因爲我對它有點熟悉。你們有什麼感想?有更好的解決方案嗎?

+0

也許改變「最好」的「好」。你可以防止flamewars。 – Piskvor 2008-12-26 01:13:02

回答

1

幾乎所有的人都會做你在問什麼。我討厭,厭惡和徹底不喜歡perl,所以我建議python或ruby。你想要做的確切的事情可以使用os.path.walk或os.walk在python中非常緊密和整齊地編寫,但是python,ruby,bash shell腳本,甚至使用awk程序的管道將會完美地完成好。

5

如果你有cygwin使用bash腳本或者安裝Python,Perl或者Ruby並且使用它們。當涉及到基本的文件操作時,沒有真正的「最佳」。選擇你最喜歡的語言。

5

Perl獲得我的投票權,特別是如果您正在進行任何文本搜索(或搜索和替換)。大多數現代語言都可以這樣做,但對我而言,Perl具有簡潔和強大的正確組合。

看到修改後的問題,我會說這個:你不需要s腳本語言。你需要一個音樂組織者,比如Tag&Rename。它具有很多功能來標記音樂(來自亞馬遜或僅從目錄和文件名),並將其重新組織爲您希望的任何標準。

2

Tcl是一個非常好的選擇(ActiveState提供的ActiveTcl,適用於所有平臺),特別是如果你認爲你可能想在某一天添加​​一個最小的GUI。如果你尋找「tclkit」,它是Tcl的一個單一文件實現,它使安裝無論你想要複製一個文件的問題。

在這方面,Tcl並不比Perl,Ruby,Python或任何其他腳本語言更好也不差,它們都以相同的方式進行基本的文件操作。

1

由於其強大的文本/字符串處理功能,我將使用Perl。此外,你可以使用沒有cygwin的ActivePerl(這有點過於殺死IMO)。

1

如果你想組織你的音樂,我會建議foobar2000。除了是一個出色的播放器之外,它的文件操作組件可以根據自定義模式複製或移動文件。

0

不要忘記Zsh作爲一個選項 - 你的bash知識是相關的,再加上它有一些整潔的腳本和命令行功能。

0

Perl的設計就是爲了這樣做而設計的。