두 문자열 사이의 문자열 검색

두 문자열 사이의 문자열 검색

두 문자열 중간에 있는 부분 문자열을 추출하려고 합니다. 이 grep 명령을 실행합니다.

echo "http://www.miweb.es/midoc-87-documento-texto_mf_4150310_1.txt" | grep -Po "(?<=midoc-).*(?=-)"

Result
87-documento

하지만 저는 "87-documento"가 아닌 "87"을 얻고 싶습니다.

감사해요.

답변1

non-greedy로 전환하려면 ?뒤에 추가하세요 .*

답변2

이 시도:

echo "http://www.miweb.es/midoc-87-documento-texto_mf_4150310_1.txt" | grep -Po "(?<=midoc-).."

나는 다음과 같은 결과를 얻습니다.

[root@tomcat7test ~]# echo "http://www.miweb.es/midoc-87-documento-texto_mf_4150310_1.txt" | grep -Po "(?<=midoc-).."
87
[root@tomcat7test ~]#

관련 정보