我正在尝试决定使用哪种语言来编写一个脚本,该脚本将从服务器应用程序中“抓取”日志文件。脚本的一般算法将类似于(当然仍然会散列所有小细节):
1. Search for any line that contains (ACK_STRING, PARTIAL_FILL_STRING, or COMPLETE_FILL_STRING) and not AUTO_HEDGER_STRING
2. For each result
{
Extract time, order ID, symbol, status, theo, price from line
Get intermediate edge value
If buy, edge = (theo - price)
Else, edge = (price - theo)
If order ID not found in order ID -> orderquoteinfo structure
{
Add (edge * qty of order) to total edge
}
Add edge to total edge received
Add (edge * qty filled) to total edge received
Store info in order ID -> orderquoteinfo structure
}
3.
For each order ID -> orderquoteinfo structure
{
Print results in CSV format
Time, Order ID, Symbol, Status, B/S, Qty, Price, Theo, Edge
}
4. Print total edge missed
Print total edge - total edge received
5. Print total edge received
因此,本质上,我想使用类似于 C++ 中的映射或 Perl 中的关联数组的数据结构来保存从日志文件的每一行中抓取的信息。我对 shell 脚本不太熟悉,但我想看看什么语言在这里有意义。我从中提取日志的服务器应用程序驻留在 Linux 服务器上(而且它很快就会被移植到另一个平台的可能性很小)。所以 Perl 的可移植性因素并没有在我的脑海中发挥作用。
对我来说,我只是更熟悉编写 Perl 脚本而不是 shell 脚本。但是,如果在这里这样做更有意义,我想编写一个 shell 脚本。该脚本将作为计划任务每天运行一次(给予或接受)。基本上,该脚本只是作为一种轻松从日志文件中获取指标数据的方式。我使用术语“抓取”是因为我将在日志文件中搜索最不可能更改但仍然存在风险的特定字符串。
那么,我应该编写一个 shell 脚本还是使用 Perl?什么更有意义?这里重要吗?