2016-11-02 6 views
2

URLがhttp | httpsで始まり、jpg | pngで終わるかどうかを確認しようとしています。私は検索しましたが、答えは私のためには機能しません。httpまたはhttps正規表現のBashチェック

私は現在、この持っている:

if [[ $url = ^https?://.*jpg ]] 
then 
wget -O webcam.jpg $url 
fi 

をしかし、そのは、wgetに失敗します。私は間違って何をしていますか?

答えて

1

正規表現マッチングには=~演算子を使用する必要があります。 =のみパターンと一致します。同等のパターンはhttp?(s)://*jpg*です。 (bashの最近のバージョンは、常に[[ ... ]]内の拡張パターンを使用して、古いバージョンでは、彼らはshopt -s extglobで明示的にオンにする必要があります。)

は(私はパターンに後続 *を追加したパターンは、デフォルトでは文字列の両端に固定されているので、正規表現では ^$が明示的に必要ですが、正規表現の末尾には $がありませんでしたので、末尾にもパターンを開いています)。

+0

末尾の '* ' 'http:// jpg.com/not_an_image.html'のようなURL?私はOPが正確なマッチングを望んでいると思います。 – dimo414