我目前正在编写一个软件包,以简化研究实验室的数据分析。我们使用的是几种不同的分析软件包,我们使用的是UNIX,MATLAB和(很少使用的)Python。典型的数据集约为250GB(RAW),在分析之前至少需要4个不同的预处理步骤。成品通常最终占1TB。我的软件包的目标是允许用户在运行分析之前选择每个步骤使用的现有软件包,然后该程序将在无需进一步的用户干预的情况下执行它。由于目标是用不同的语言整合这些不同的软件包,因此我决定在Bash中编写该程序,以使无论使用什么语言都可以轻松调用实际的分析脚本。

该程序开始出现,但是由于每个分析软件包的各种特质期望和约定,它变得非常复杂。我意识到Bash可能不是用于复杂任务的最合适的语言,但是我喜欢从那里以不同语言调用脚本,而且相对简单。该程序还可以执行大量文件处理,而Bash擅长。另一方面,我听说它也很慢,当事情变得更加复杂时,它会变得笨拙。

我想知道Bash是否是此任务的最佳选择。是否有人对其他语言或语言组合有建议,这可能更适合我的需求?

我应该注意,我是一个自学成才的程序员,这是我的第一个真正的编程挑战。我主要熟悉Bash,Matlab,R和一点Python,但我也想学习新事物(也许C?)。另外,这一切都将在Unix上运行。

有帮助吗?

解决方案

如果您主要将呼叫拼接到其他软件中,例如Unix Utilities(Awk,Grep,Sed ...),Python和Matlab脚本,请使用Bash 很好 甚至最适合工作来构建简单的管道和工作流程。

读取用户输入,将其存储在变量中,然后根据设定变量启动其他软件很容易。它完全足够快,没有其他任何事情变得更容易。

但是,如果您要使用bash进行预处理,例如按线路循环循环,将包装和包装的值分隔为数组等,这将是非常缓慢而不建议的。

许可以下: CC-BY-SA归因
scroll top