我有一个很长的文件列表,格式如下:
https://server.com/Nonsense%20text%20Actual%20Filename01.ext<br>
https://server.com/Non%20essential%20text%20Actual%20Filename02.ext<br>
https://server.com/Not%20required%20text%20Actual%20Filename03.ext<br>
问题是如何将正则表达式应用于 wget -O,以便只有右侧的模式或右侧的一定数量的字符才会产生输出文件?
wget https://server.com/Non%20essential%20text%20Actual%20Filename02.ext -O Actual Filename02.ext
答案1
我认为你想要一个函数,即:
function dl() {
URL="$1"
NAME=$(egrep -io 'filename[0-9]{1,2}\.ext' <<< "$URL")
echo wget -O "$NAME" "$URL"
}
现在您可以使用您的dl
功能:
$ for url in $(cat url_list.txt); do dl $url; done
wget -O Filename01.ext https://server.com/Nonsense%20text%20Actual%20Filename01.ext<br>
wget -O Filename02.ext https://server.com/Non%20essential%20text%20Actual%20Filename02.ext<br>
wget -O Filename03.ext https://server.com/Not%20required%20text%20Actual%20Filename03.ext<br>