【发布时间】:2017-06-28 22:43:22
【问题描述】:
我的问题如下: 我有一个以某种方式格式化的文本文件:
12 apple
78 orange
12 prune
12 prune
78 berries
78 cake
我需要的是重新分配表单中的值:
12 apple, prune
78 orange, berries, cake
我使用 awk {sbj=$2","; a[$1]=a[$1]sbj}END{for (i in a) print i, a[i]} 做到了
但问题是现在我有了文件,格式为:
12 apple one
78 orange one
12 prune two
12 prune two
78 berries two
78 cake two
愿望输出是:
12 apple one
78 orange one
12 prune two
78 berries, cake two
我试图混合使用 awk 和 bash,但没有帮助。我现在可以做的唯一选择是将每个系列(“一”,“二”)存储到单独的文件中,并用上面的代码分别处理它们,然后将所有数组汇总到一个文件中。但这是一个笨重且笨拙的解决方案。有没有办法把它放在同一个文件中? 谢谢你的任何提示。
【问题讨论】:
-
是我,太笨了,一开始就问不出问题。 ;)(第一个示例的输出也不完全正确,这让我很困惑)。当时忙着回答,但现在恢复了接近投票。
-
第一个示例的输出有什么问题?在我看来是对的。
-
如果你尝试给定的代码 sn-p 它将是
12 apple, prune prune而不是12 apple prune这让我很困惑。