我有一个 bash 脚本,它可以抓取各种文档链接的 url 列表。最后,脚本用于wget
下载文件。但是,我在名称中包含空格的文件名时遇到了问题:wget
在空格处结束 url。有sed
什么方法可以使用或将空白更改为%20
此处吗?还是其他解决方案?这是我的代码:
for url in $(cat download.md)
do
lynx --listonly --dump $url | \
awk '/\.(pdf|doc|docx|odt)$/{ sub("^[ ]*[0-9]+.[ ]*","",$0); print}'
done > ~/links.txt
for i in $( cat ~/links.txt ); do wget $i;
done
$( ... )
您在命令替换期间丢失了完整的文件名。只需要求wget
直接读取文件: