구문 분석: 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

관련 정보