合并来自不同Feed项的值

时间:2013-07-18 04:06:43

标签: pipe yahoo

使用XPATH Fetch页面我在获取html表后设法获得此输出

0
content $59,00
1
content $61,00
2
content $1.873,25
3
content $2.460,70
4
content US$1,49

我想对这些值进行一些数学运算,例如(假设[#]为元素索引):

{ [3] + 50 / ([0] + [1])/2) } 

{ [4] + 50 / ([0] + [1])/2) }

我不关心项目[4]。

我想我必须先以某种方式删除货币符号,然后找到一种方法将这些值解析为简单的数学模块。有线索吗?

某些背景信息:我过去(几年前)尝试过管道,但这只是结合使用,而不是数学。今天我回到了管道,因为我发现了XPATH Fetch模块,它看起来很有趣,但却被这个看似简单的练习所困扰。

这是管道的链接,所以你可以看到我在哪里(线索:不是很远......): http://pipes.yahoo.com/pipes/pipe.info?_id=06780ca250e5b107b7c1ef52455996ff

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解这个问题 - 你有一个很大的值列表,每个值都有一个元素索引(从0到4)吗?或者你总是只有10行,但$值每次都会改变?

我将假设后一种情况 - 即每个HTML文件都会获得一次此表,现在想从中获取一个数字。

我会用这样的东西:

... | tr -d '.$' | tr ',\n' '. ' | sed 's/content/c/g' | sed 's/0 c \(.*\) 1 c \(.*\) 2 c \(.*\) 3 c \(.*\) 4 c \(.*\)/\4 + 50\/(\1 + \2)\n/' | bc -l

说明:

  • 首先删除'$'符号和'。'使用`tr -d'
  • 然后将','转换为点'。',并删除换行符(将所有内容都设为一行)
  • 然后我将“内容”缩短为“c”,只是为了缩短下一部分
  • 我使用sed分割字段并使用值
  • 编写数学表达式
  • 注意 - 我也可以使用cut,如果我添加了'+ /()'符号
  • 最后,我获取结果表达式并将其输入bc。也可以使用python,但我喜欢bc