Bash 将从html文件链接的图像复制/发布到其他服务器,并更新引用它们的html文件

Bash 将从html文件链接的图像复制/发布到其他服务器,并更新引用它们的html文件,bash,ftp,sed,grep,Bash,Ftp,Sed,Grep,我将内容从Drupal CMS发布到另一个域上的静态HTML页面,托管在第二台服务器上。构建HTML文件很简单(使用PHP/MySQL编写文件) 我有一个HTML中引用的图像列表,所有这些图像都位于/userfiles/目录下 cat *.html | grep -oE [^\'\"]+userfiles[\/.*]*/[^\'\"] | sort | uniq 它生成一个文件列表 http://my.server.com/userfiles/Another%20User1.jpg http:

我将内容从Drupal CMS发布到另一个域上的静态HTML页面,托管在第二台服务器上。构建HTML文件很简单(使用PHP/MySQL编写文件)

我有一个HTML中引用的图像列表,所有这些图像都位于/userfiles/目录下

cat *.html | grep -oE [^\'\"]+userfiles[\/.*]*/[^\'\"] | sort | uniq
它生成一个文件列表

http://my.server.com/userfiles/Another%20User1.jpg
http://my.server.com/userfiles/image/image%201.jpg
...
我的下一步是将这些图像复制到第二台服务器,并翻译html文件中的标记


我知道sed可能是我需要的工具。例如:

sed 's/[^"]\+userfiles[\/image]\?\/\([^"]\+\)/\/images\/\1/g'

应该更改为/images/另一个%20User1.jpg,但我无法确定如何使用该脚本。也就是说,我可以使用它来更新文件,还是需要处理临时文件等。那么,我如何确保文件移动到第二台服务器上的正确位置?可以使用sed来使用-I选项更改文件


对于您的使用,由您决定是否更容易/更好地使用旧文件的更改创建新文件,然后使用scp(或类似内容)复制到第二个域。或者,先复制文件,然后在远程服务器上修改文件可能会更容易(这样可以减少对新文件名的管理)。

html文件是专门为此目的生成的,因此修改它们是我的首选选项。cat.html | grep-oE[^\]+userfiles[\/.]*/[^\]+| sort | uniq | sed的s/(.\/(.*)/cp\“\/var\/www\/drupal\1\”\“\/\2\”/g'| sed's/%20//g'>>mov e|u images.sh bash move_images.sh sed-i's/\/userfiles\/([^\“\/]*)/\1/g'*.html