我在阅读页面并试图从中提取一些数据。我对使用bash感兴趣,并且在经历了几个链接之后,我才知道'Shell参数扩展'可能会有所帮助,但我发现在我的脚本中使用它非常困难。我知道使用sed可能会更容易,但就我的知识而言,我想知道如何在bash中实现此目标。在Shell参数扩展中使用模式
shopt -s extglob
str='My work</u><br /><span style="color: rgb(34,34,34);"></span><span>abc-X7-27ABC | </span><span style="color: rgb(34,34,34);">build'
echo "${str//<.*>/|}"
我希望我的输出是这样的:My work|abc-X7-27ABC |build
我想检查是否接受,而不是模式只字,它似乎用言语来工作的。
例如,
echo "${str//span style/|}"
的作品,但
echo "${str//span.*style/|}"
不
在另一方面,我的链接,它不接受模式的人看到。我很困惑,为什么它不适用于我上面使用的模板。
How to make sed do non-greedy match? (用户konsolebox的解决方案)
你保证有一个'|在'ABC ...''部分字符? – devnull
|角色最初不会在那里。你可以忽略它。我想要的是删除_before_和_ after_下面的所有内容:_My work_,_abc-X7-27ABC_和_build_。当我删除HTML语法时,我想要| |作为替代人物。因此,输出应该像'我的工作| abc-X7-27ABC | build' – Technext