gpt4 book ai didi

linux - 使用 sed 或替代函数提取文本行中 $ 和 < 之间的值

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:28 26 4
gpt4 key购买 nike

我正在尝试从此行中提取价格:

<div class="bpi-value bpiUSD">$634.17</div>

我想输出:

634.17

我试过:

sed -n "/$/,/</p"

希望提取 $ 之间的所有内容和 <但它不起作用。我认为这样做的原因可能是美元符号被解释为变量或其他东西。这样做的最佳方法是什么?

最佳答案

从标记语言中提取内容的正确方法是使用语法感知工具:

read -r var < <(xmlstarlet sel -t -m '//div[@class="bpi-value bpiUSD"]' -v . <in.xhtml)
var=${var#'$'} # strip leading $

但是,如果您必须,并且您只处理一行,请使用 bash 的 native built-in string manipulation primitives而不是为诸如 sed 之类的外部工具支付启动成本:

line='<div class="bpi-value bpiUSD">$634.17</div>'
var=${line#*$} # delete everything up and including to first $
var=${var%%'<'*} # delete everything after the first remaining <

另见:

关于linux - 使用 sed 或替代函数提取文本行中 $ 和 < 之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39982382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com