基于正则表达式的 wget 输出

基于正则表达式的 wget 输出

我有一个很长的文件列表,格式如下:

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>

相关内容