我需要编写一些脚本来在我的服务器上执行一些任务(运行 Ubuntu 服务器 8.04 TLS)。这些任务将定期运行,因此我将脚本作为 cron 作业运行。
我将任务分为“A 组”和“B 组”——因为(至少在我看来)它们有点不同。
任务组 A
从文件中导入数据并可能重新格式化它 - 通过重新格式化,我的意思是做一些事情,比如对数据进行清理,可能对其进行规范化,或者对数据的“列”进行计算
将整理好的数据导入数据库。目前,我主要使用 mySQL 进行绝大多数导入——尽管一些文件将被导入 sqlLite 数据库。
注意:这些文件将主要是文本文件,尽管其中一些文件是二进制格式(我自己的专有格式,由我开发的 C++ 应用程序编写)。
任务组 B
- 从数据库中提取数据
- 对数据执行计算并在数据库中插入或更新表。
我的编码经验主要是作为 C/C++ 开发人员,尽管在过去 2 年左右的时间里我也一直在使用 PHP(+ 一些与此问题无关的其他语言)。我来自 Windows 背景,所以我仍然在 Linux 环境中找到自己的立足点。
我的问题是——我需要编写脚本来执行我上面描述的任务。虽然我想我可以编写一些 C++ 应用程序用于 shell 脚本,但我认为用脚本语言编写它们可能会更好,但这可能是一个有缺陷的假设。我的想法是在脚本中修改内容会更容易——无需重建等来更改功能。此外,与 Perl、Python 等“自然”脚本语言相比,C++ 中的 C++ 数据处理往往涉及更多的代码行。
假设这里的大多数人都同意脚本是要走的路,这就是我的困境。我使用哪种脚本语言来执行上述任务(给出我的背景)?
我的直觉告诉我 Perl ( shudder ) 将是执行上述所有任务的最明显的选择。但是(这是一个很大的但是)。仅仅提到 Perl 就让我的脚趾发麻,因为前段时间我对它有过非常非常糟糕的体验(多年前买了 Perl Camel 书 + 'data munging with Perl',但仍然无法“理解”它感觉太陌生了。语法对我来说似乎很不自然-尽管我尝试学习了多少次-所以如果可能的话,我真的很想错过它。PHP(我已经知道),也不确定是在 CLI 上编写脚本的好人选(我没有看到很多关于如何执行此操作的示例等 - 所以我可能错了)。
我必须提到的最后一件事是,如果我必须学习一门新语言才能做到这一点,我不能(时间限制)花费超过一天的时间来学习这样做所需的关键命令/功能(一旦我实际部署了脚本,我总是可以在以后学习语言的细节)。
那么,您会推荐哪种脚本语言(PHP、Python、Perl,[在此处插入您最喜欢的])——最重要的是为什么?或者,我应该坚持编写在 shell 脚本中调用的小型 C++ 应用程序吗?
最后,如果你建议了一种脚本语言,你能用几行来说明吗(Perl mongers - 我在看你的方向[没什么太神秘的!])我如何使用你建议的语言来做我正在尝试的事情做即
- 将 CSV 文件加载到某种数据结构中,您可以在其中轻松访问数据列以进行数据操作
- 将列式数据转储到 mySQL 表中
- 将 mySQL 表中的数据加载到允许以脚本语言访问列/行的数据结构中
希望这些片段能让我快速找出对我来说学习曲线最陡峭的语言——以及那些简单、优雅和高效的语言(希望这两个标准 [优雅和浅学习曲线] 不是正交的——尽管我怀疑他们可能是)。