How to grep for a URL in a file?

后端 未结 2 1600
醉话见心
醉话见心 2021-01-05 05:55

For example, I have a huge HTML file that contains img URL: http://ex.example.com/hIh39j+ud9wr4/Uusfh.jpeg

I want to get this URL, assuming it\'s the only u

2条回答
  •  礼貌的吻别
    2021-01-05 06:40

    The following fixes your regular expression for this specific case (including numbers and plus-signs):

    http://ex[a-zA-Z.-]*/[a-zA-Z0-9.+-]*/[a-zA-Z0-9.+-]*
    

    Demonstration:

    echo "For example, I have a huge HTML file that contains img URL: http://ex.example.com/hIh39j+ud9wr4/Uusfh.jpeg"
    

    I want to get this URL, assuming it's the only url in the entire file.

    cat file.html | grep -o 'http://ex[a-zA-Z.-]*/[a-zA-Z.-]*/[a-zA-Z.,-]*'
    

    This works only if the URL doesn't have the plus signs. How do I make work for + signs as well?

    cat file.html| grep -o 'http://ex[a-zA-Z.-]*/[a-zA-Z0-9.+-]*/[a-zA-Z0-9.+-]*'
    

    output:

    http://ex.example.com/hIh39j+ud9wr4/Uusfh.jpeg
    

    This does not extract all valid URLs. There are plenty of other answers on this site about URL matching.

提交回复
热议问题