解析: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

関連情報