Jou*_*Man 1 regex shell grep sed
我如何只提取匹配文本的子字符串.
我有一个包含多行的XML文件.然而,这就是我所关注的.
<url>/localhost/index.html</url>
Run Code Online (Sandbox Code Playgroud)
我试过了
cat file.txt | grep -o '<url>.*</url>'
Run Code Online (Sandbox Code Playgroud)
它给了我整条路线.我只想/localhost/index.html打印.有没有其他我可以使用的选项,就像我在Python中所知,您可以将正则表达式分组到子组中并选择要打印的那个.
如果您grep不支持-P(请参阅ruakh的答案),您可以使用sed它:
sed -n 's|.*<url>\(.*\)</url>.*|\1|p'
Run Code Online (Sandbox Code Playgroud)