相当新的BASH,并寻求一些建议,因为即使开始这个我正在努力.
我有一个列出大量图像的网页,就像这样
<img src="01.jpg" alt="" width="1920" height="1080" />
<img src="02.jpg" alt="" width="1920" height="1080" />
<img src="03.jpg" alt="" width="1920" height="1080" />
我想运行BASH来阅读这个本地的网页,拿起文件名,即01.jpg,02.jpg和03.jpg,然后删除目录中不匹配的所有其他.jpg文件.因此,例如,如果该文件夹也具有04.jpg,则该文件将被删除,因为它不在网页中.
对不起,我没有发布任何编码,只是根本没有理解这个.
先感谢您
最佳答案 使用
Python和
BeautifulSoup(一个强大的Python HTML解析器模块)的解决方案:
python -c '
import sys, glob, bs4;
print("\n".join(
set(glob.glob("*.jpg")) -
set(e["src"] for e in bs4.BeautifulSoup(sys.stdin.read()).find_all("img"))
))' < file.htm | xargs rm`
一些注释:它打印当前目录中的jpg文件与< img src =“..”>中找到的文件名之间的设置差异.标签,每行一件