解析:从 html 行中提取版本

解析:从 html 行中提取版本

我想从此字符串中提取版本号:

<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">

请注意,“ /url/version/tree/”可能会更改(例如:从/url/version/tree//url/version2/tree1/),版本也可能会更改(例如:从1.01alpha112.0stable

想法/建议?

答案1

sed解决方案:

样本文件input.txt

<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">
<a href="/url/version2/tree1/1.0.2alpha11" class="css-truncate">
<a href="/url/version/tree/2.0stable" class="css-truncate">

sed -En 's@.*\<href="/[^[:space:]]+/([^/"[:space:]]+).*@\1@p' input.txt

输出:

1.0.1alpha11
1.0.2alpha11
2.0stable

答案2

我使用下面的 awk 命令提取了版本。经测试,其工作正常。

Inputfile

<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">
<a href="/url/version2/tree1/1.0.2alpha11" class="css-truncate">
<a href="/url/version/tree/2.0stable" class="css-truncate">

命令

awk -F '[/]' '{print $NF}' Inputfile| awk -F '"' '{print $1}'

输出

1.0.1alpha11
1.0.2alpha11
2.0stable

答案3

源文件:input.txt:

<a href="/url/version2/tree1/2.0stable" class="css-truncate">
<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">
<a href="/url/version2/tree1/1.0.2alpha11" class="css-truncate">

使用awksed

awk 'BEGIN { FS = "/" } { print $5 }' input.txt | sed -E 's/^(.*)"\s.*/\1/'

结果:

2.0stable
1.0.1alpha11
1.0.2alpha11

相关内容