【发布时间】:2015-03-26 11:00:59
【问题描述】:
如有需要,请帮忙修改标题和帖子,谢谢。
简而言之,我想首先在第一个字段中对具有唯一值的行进行分组,并在基础行组中的另一个字段中累积特定值的出现。如果出现的总和不满足自定义阈值,则应忽略组中的行。
具体来说,有输入
111,1,P,1
111,1,P,1
111,1,P,0
111,1,M,1
222,1,M,1
222,1,M,0
333,1,P,0
333,1,P,1
444,1,M,1
444,1,M,1
444,0,M,0
555,1,P,1
666,1,P,0
期望的输出应该是
111,1,P,1
111,1,P,1
111,1,P,0
111,1,M,1
333,1,P,0
333,1,P,1
555,1,P,1
666,1,P,0
意思是“因为第一个字段222 和444 中的唯一值在第三个字段中没有至少一个(可以是任何所需的阈值)P , 对应于 222 和 444 的行将被忽略。"
此外,这应该在不编辑原始文件的情况下完成,并且必须结合已解决的问题Split CSV to Multiple Files Containing a Set Number of Unique Field Values。通过这样做,生成的拆分文件中不会涉及几行。
【问题讨论】:
标签: awk split pattern-matching conditional-statements find-occurrences