【发布时间】:2014-05-08 13:42:12
【问题描述】:
我有一堆看起来像这样的变量:
(DURATION 1.57) + (DURATION 2.07)
(T0 10) (T1 0) (TX 0) + (T0 12) (T1 0) (TX 1)
(TC 1) (IG 0) + (TC 2) (IG 3)
是否有可能让 awk 处理这个结果是:
(DURATION 3.64)
(T0 22) (T1 0) (TX 1)
(TC 3) (IG 3)
或者任何人都可以推荐另一个我可以用来执行此操作的 unix 程序吗?
【问题讨论】:
-
这当然可以用
awk来完成(就像宇宙中几乎所有的文本处理任务一样)。问题是这是否合理:)。也许你知道生成这种结构化数据的程序? -
我会创建一个正式的 EBNF 语法(看起来很简单),然后使用例如为这些数据生成一个处理器。
bison或 Boost.Spirit 试一试。 -
我猜这是作业,所以不同的账号在相同的时间提出了类似的问题(stackoverflow.com/questions/23532337/…)然后老师稍后会将加号
+改为其他运算符。 -
@BMW 很抱歉让您失望了,但这不适合做作业 ;-)。我试图写下我的问题的更一般的描述,但上面的例子更清楚。
标签: awk