
이 문자열에서 버전 번호를 추출하고 싶습니다.
<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