【发布时间】:2012-04-05 07:07:47
【问题描述】:
我想找到一个文本处理实用程序,它将同一主键的属性的所有值分组。环境是Linux。
考虑一个包含“记录”的文本文件,每条记录都是文件中的一行。这些记录是由空格分隔的数值序列,其中一个是主键值,其他记录是主键的附加属性或为此主键计算的属性。示例:
pkey pkey-prop1 pkey-prop2 attr1 attr2 attr3 attr4
100 200 400 0.1 0.2 0.3 0.4
100 200 400 0.2 0.7 0.4 0.5
100 200 400 0.3 0.4 0.5 0.6
101 200 401 0.7 0.8 0.9 1.0
101 200 401 0.8 0.9 1.0 1.1
101 200 401 0.9 1.7 1.1 1.2
通过指定哪个列扮演pkey、property和attribute的角色,我想从属于同一主键的所有记录中获取某个属性的分组。例如,对于pkey=$1、property=$2 $3、attribute=$5,结果将是:
100 200 400 0.2 0.7 0.4
101 200 401 0.8 0.9 1.7
也就是说,所有带有pkey=100 属性的行都被归为一行,所有带有pkey=101 属性的行也被归为另一行。
我不希望有一个精确的工具,但我很高兴有一个至少可以进行分组的工具。
【问题讨论】:
-
是的,awk,假设它可用。添加标签以表明您是否在 Linux/Unix 上?祝你好运
-
是的,环境是Linux,可以使用
awk。但是awk的工作方式类似于单行输入-> 单行输出,而任务是多行输入-> 单行输出。您认为如何在awk中进行分组?
标签: linux text command-line grouping