두 문자열 중간에 있는 부분 문자열을 추출하려고 합니다. 이 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 ~]#