正規表現から複数の文字列を抽出する

正規表現から複数の文字列を抽出する

次の行で構成されるファイルがあります。

URL=http://someURL]somefilename

一部のファイル名が存在しない場合は、ダウンロードURLリンクが必要です。次のようなシェルコマンドを使用したいと思います。

for i in $(cat FILE); do if [ ! -f somefilename] somecode; done

しかし、どのコードを使うべきかわかりません。どんなアイデアがありますか?

編集:terdonの問題を解決するには、はい、1行に]つのみ、someURLの後に1つあり、はい、ファイル名は]の後ろの末尾までの完全な文字列です。

ベストアンサー1

これは純粋なシェル方法です:

while IFS='=]' read a url file; do 
    [ -f "$file" ] || echo "wget $url]$file"
done < file

これはファイルを繰り返して各行を分割し、=]結果フィールドを変数a(string URL)、$url(url to filename)、および$file(filename)として読み込みます。次に、$file現在のディレクトリに存在しない場合(したがって[ -f "$file" ]falseを返す)、ダウンロードします。

おすすめ記事