![두 문자열 사이의 문자열 검색](https://linux55.com/image/83310/%EB%91%90%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EC%82%AC%EC%9D%B4%EC%9D%98%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EA%B2%80%EC%83%89.png)
두 문자열 중간에 있는 부분 문자열을 추출하려고 합니다. 이 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 ~]#