提取正则表达式中的多个字符串

提取正则表达式中的多个字符串

我有一个由如下行组成的文件:

URL=http://someURL]somefilename

如果某些文件名不存在,我需要下载 URL 链接。我想使用 shell 命令,例如:

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

但我不知道要使用什么代码。有任何想法吗?

编辑:要解决 terdon 问题:是的,每行只有一个 ] ,即 someURL 之后的一个,是的,文件名是 ] 之后到行尾的整个字符串。

答案1

这是一个纯 shell 方法:

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

这将迭代文件,在 或 上分割每一行,=并将]每个结果字段读取到变量 a (字符串URL)、$url(url 直到文件名)和$file(文件名)中。然后,如果$file当前目录中不存在(因此[ -f "$file" ]返回 false),它将下载它。

相关内容