在Solaris服务器主目录中有两个示例管道分隔文件,如下所示:
文件1.txt:
ticker|sedol|cusip|exchnage
ibm |ibm_1|ib |london
hcl | |hcl_02|london
hp |hp_01|hpm |newyork
|lkp |lk_2 |newyork
文件2.txt:
^{pr2}$我需要一个结果文件,我们将把ticker、sedol、cusip的唯一计数按exchange分组:
预期结果文件如下:
exchnage|ticker|sedol|cusip
london |3 |2 |3
newyork |3 |2 |2
我知道使用SQL很容易,但不幸的是数据库不能涉及。每个文件的大小可能会达到300-400 MB。我们最好是用Perl或者Python来完成。主环境是Solaris,但我们也可以在Unix服务器上尝试。现在需要增加的是“exchange”列的位置可以在两个文件中的任何位置。在
将打印:
^{pr2}$我将把它留给你来处理文件的打开和处理-这只是说明你可以采取的方法。在
我想,首先你需要从这些文件中创建一个字典列表,比如: {'exchnage':'london','ticker':'ibm','sedol':'ibm'u 1','cusip':'ib'}。而不是需要for each satement将所有值添加到列表中,但仅当值不是“无”时,空值不在列表中。然后你就得到了列表中所有的唯一值,你需要对它们进行计数。
您需要对文件中的所有列执行此操作。
之后,你需要把这个写在一个文件里。在
不是最优雅的,而是我为您的新要求而设计的最快的:
程序输出(作为输入,使用了列顺序不同的新文件):
^{pr2}$相关问题 更多 >
编程相关推荐