2つの文字列の中間にある部分文字列を抽出しようとしています。この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 ~]#