我想从此字符串中提取版本号:
<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">
请注意,“ /url/version/tree/
”可能会更改(例如:从/url/version/tree/
到/url/version2/tree1/)
,版本也可能会更改(例如:从1.01alpha11
到2.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">
使用awk
和sed
:
awk 'BEGIN { FS = "/" } { print $5 }' input.txt | sed -E 's/^(.*)"\s.*/\1/'
结果:
2.0stable
1.0.1alpha11
1.0.2alpha11