【发布时间】:2017-11-30 21:54:07
【问题描述】:
我在命令行中有被分成“记录”的文本数据,每个记录都有相同的值(始终为 1)。在每条记录中,每一行都是一个单独的键和值(不幸的是,这不在 json 中)。键有时会在记录中重复,有时键名称是较长键的一部分。例如:
Record = 1
Apple = 1
Ball = 2
Car = 3
RedApple = 4
Ball = 5
Dog = 6
Elf = 7
Fudge = 8
Record = 1
Apple = 2
Ball = 4
Car = 6
RedApple = 8
Ball = 10
Dog = 12
Elf = 14
Fudge = 16
Record = 1
Apple = 3
Ball = 6
Car = 9
RedApple = 12
Ball = 15
Dog = 18
Elf = 21
Fudge = 24
是否有快速为每条记录获取一组键的行,只返回每个键的第一个结果?
例如:为每条记录获取键 {Apple, Ball, Dog}
将匹配以下行:
Record = 1
Apple = 1
Ball = 2
Dog = 6
Record = 1
Apple = 2
Ball = 4
Dog = 12
...
基本上,规则是在将一行与“记录”匹配后,获取下一个与“Apple”、“Ball”和“Dog”(间距表示精确键匹配)的唯一行并将这些行吐出。
我可以用 perl 写一些东西,而且不会太复杂。我不知道awk,所以不知道这样的东西是否更好。
【问题讨论】:
-
“我可以用 perl 写一些东西,而且不会太复杂” 那么您需要我们的帮助做什么呢?
-
希望学习比多行perl脚本更好的方法
-
您应该发布您的 Perl 并描述您遇到的问题。多行 Perl 程序没有任何问题。
-
我明白了,但我不需要 perl 脚本的帮助,我知道我可以做到这一点。我正在看看是否可以学习更好的方法,例如单个命令行。
-
那么你应该把它放在你的问题中。就目前而言,远不清楚你在问什么。单个命令行没有什么“更好”的了。如果您表现出诚意并发布了您编写的 Perl,它将帮助您获得更好的答案,尽管听起来您的问题属于 Code Review。