如何使用Perl grep在我的服务器上定位非';没有被引用吗?

如何使用Perl grep在我的服务器上定位非';没有被引用吗?,perl,grep,Perl,Grep,我需要一种方法(可能是perl)来定位服务器上未引用的所有图像。我正在我的网站上整合图片/图标,有太多的图片/图标需要一个一个地手工筛选。我需要这个查询来向那个些不再被引用的图像输出一个列表或一个URL数组,以便删除它们 想法?对于静态网站,您可以结合使用来提取内容文件中所有标记的src属性。如果您使用wget复制所有内容(请参阅manwget中的mirror),您的生活会更轻松。此外,您可能希望使用解析.css文件 接下来,对所有图像文件的源进行爬网,将其在文件系统中的路径映射到网站URL。查

我需要一种方法(可能是perl)来定位服务器上未引用的所有图像。我正在我的网站上整合图片/图标,有太多的图片/图标需要一个一个地手工筛选。我需要这个查询来向那个些不再被引用的图像输出一个列表或一个URL数组,以便删除它们


想法?

对于静态网站,您可以结合使用来提取内容文件中所有
标记的
src
属性。如果您使用
wget
复制所有内容(请参阅
manwget
中的
mirror
),您的生活会更轻松。此外,您可能希望使用解析
.css
文件


接下来,对所有图像文件的源进行爬网,将其在文件系统中的路径映射到网站URL。查看哪些不在从上一个进程获得的图像URL列表中。可能有用。

我要做的是列出你所有的图片。解析所有文档以获取图像。比较列表

为了简单起见,我假设所有图像都是唯一命名的,并且不需要路径。我还假设所有代码都在使用中

在Bash中(需要大量的tweeking,未经测试)

cd进入镜像目录
查找路径“u至图像”目录-name“*.jpg”| grep-o“\b\w*\.jpg”| sort-u>all_pics.txt
#对gif和png进行模拟
grep-rio“\b\w*\.gif\\\\\\\\.png |.gif\b”路径u到|源|排序-u>已用| pics.txt
grep-Fxv-f all_pics.txt used_pics.txt>unused_images.txt
读行时
做
找到-名称$line-exec rm-rf{}\;
完成
您从未使用过类似的软件:但是?第一行工作得很好。grep-rio“\b\w*\.gif\\\\\\\\.png |.gif\b”路径u到|源|排序-u>使用的| pics.txt。。。到源的路径是指什么?非常感谢!如果有机会,我会编辑第二行。
cd into image directory
find path_to_image_directory -name "*.jpg" | grep -o "\b\w*\.jpg" | sort -u > all_pics.txt
# do simular for gif and png


grep -rio "\b\w*\.gif\|.png|.gif\b" path_to_source | sort -u > used_pics.txt
grep -Fxv -f all_pics.txt used_pics.txt > unused_images.txt

while read line
do
    find . -name $line -exec rm -rf {} \;
done < unused_images.txt