我经常需要根据一些标准复制,移动或重命名文件和目录,因为我从许多资源中收集数据,我喜欢保持井井有条。哪种脚本语言为这些操作提供了最直观,最易用的方法?以下是一个示例场景:
我将音乐保存在如下文件夹层次结构中:
&Artist Name(upper case letters)&
-- (&album release year&) &album name&
---- \*.*
我想知道哪些文件夹会破坏我的音乐文件夹下的这些规则。我还想使它们适合我使用的结构,如果它们具有一致但不同的文件命名和目录方案结构。
我在Windows和Linux上工作,所以我想尝试一下bash(感谢cygwin),因为我对它有点熟悉。你们有什么感想?有更好的解决方案吗?
答案 0 :(得分:5)
如果你有cygwin使用bash脚本或安装Python,Perl或Ruby并使用它们。在基本文件操作方面,没有真正的“最佳”。只需选择您最喜欢的语言。
答案 1 :(得分:5)
Perl得到我的投票,特别是如果你正在进行任何文本搜索(或搜索和替换)。大多数现代语言都可以做到这一点,但对我而言,Perl具有简洁和强大的正确组合。
看到修改后的问题,我会说:你不需要脚本语言。你需要一个音乐组织者,比如Tag&Rename。它具有许多标记音乐的功能(来自亚马逊或仅来自目录和文件名)并将其重新组织为您希望的任何标准。
答案 2 :(得分:1)
Tcl是一个非常好的选择(可从ActiveState作为ActiveTcl使用,适用于所有平台),特别是如果您认为某天可能想要添加最小的GUI。如果您寻找“tclkit”,它是Tcl的单文件实现,这使得安装就可以在任何地方复制该文件。
在这方面,Tcl并不比Perl,Ruby,Python或任何其他脚本语言更好或更差 - 它们都以相同的沉着做基本的文件操作。
答案 3 :(得分:1)
由于其强大的文本/字符串处理功能,Perl是我使用的。此外,你可以只使用没有cygwin的ActivePerl(这有点过于杀死IMO)。
答案 4 :(得分:1)
几乎所有人都会按照你的要求行事。我讨厌,厌恶,并且完全不喜欢perl,所以我建议使用python或ruby。你想要做的确切事情可以使用os.path.walk或os.walk在python中非常紧密地编写,但python,ruby,bash shell脚本,甚至是带有awk程序的ls -R | aek
管道会做得很好。
答案 5 :(得分:1)
如果您想整理音乐,我建议使用foobar2000。除了是一个很棒的播放器,它的文件操作组件可以根据自定义模式复制或移动文件。
答案 6 :(得分:0)
不要忘记Zsh作为选项 - 你的bash知识是相关的,而且它有一些简洁的脚本和命令行功能。
答案 7 :(得分:0)
就像蜇伤一样,Perl的设计就是为了做这样的事情。