|
|
1
3
如果你有python(如果你在linux上,你可能已经有了),我会使用一个简短的python脚本来完成这项工作。请注意,我们使用集合过滤掉“double”项。 编辑为更接近请求者的要求:
|
|
|
2
1
如果您可以的话,我会尝试perl。一次循环输入一行。在制表符上拆分行,然后在逗号上拆分右侧部分。将值推送到一个关联数组中,以字母作为键,该值为另一个关联数组。第二个关联数组将扮演集合的一部分,以消除重复。 读取输入文件后,根据关联数组的键进行排序,循环并输出结果。 |
|
|
3
1
下面是php中的一个小实用程序:
不是真的优化或好看,但它的工作。。。 |
|
|
4
0
|
|
|
5
0
下面是一个使用CPAN的Text::CSV模块而不是手动解析CSV字段的示例:
请注意,它将打印到标准输出。我建议只重定向标准输出,如果您扩展了这个程序,请确保使用
|
|
|
6
0
您的数据基本上是一个多对多数据集,因此第一步是使用每行一个键和值对数据进行规范化。我们还将交换键和值以指示新的主字段,但这并不是严格必需的,因为下面的部分不依赖于顺序。我们使用制表符或[spaces]、[spaces]作为字段分隔符,因此我们在制表符上在键和值之间以及值之间进行分割。这将在值中保留嵌入的空间,但会在前后对其进行修剪:
然后我们要应用您的排序顺序并消除重复项。我们使用bash特性指定一个tabchar作为分隔符(-t$'\t')。如果您使用的是Bourne/POSIX shell,则需要使用“[tab]”,其中[tab]是文本选项卡:
然后,将其放回您想要的形式:
将它们全部导入管道,您将获得所需的输出。我使用GNU工具进行了测试。 |