【问题标题】:Combine values from different feed items合并来自不同 Feed 项的值
【发布时间】:2013-07-16 20:46:58
【问题描述】:

使用 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

【问题讨论】:

    标签: pipe yahoo


    【解决方案1】:

    我不确定我是否理解这个问题 - 您是否有大量值,每个值之前都有一个元素索引(从 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

    【讨论】:

    • 嘿,谢谢 cluracan,但我不知道如何在 yahoo 管道中实现这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多