我有一个图像目录(例如image1.png)。但是,图像可以在目录中的目录内(递归)。
我想通过这个图像目录,获取文件名,并搜索另一个目录中的所有用法(也是递归的)。如果没有用法,我想标记它。本质上我想找出任何文件中没有使用的图像(php / html / css / etc)。
我已经看到了一些首先使用的提示
find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'
接着是
grep -rnw '/path/to/somewhere/' -e "pattern"
但我的linux命令技能正在努力为此编写一个脚本。 有人曾经这样做过吗?
示例数据: 目录:
.
├── aboutus
│ └── logos
│ ├── us.jpg
使用示例:
background-image: image-url('images/aboutus/logo/us.jpg');
答案 0 :(得分:0)
您可以使用这样的循环来获取未找到的图像列表:
cd /base/dir/to/check/presence/of/image/files
while IFS= read -d '' -r f; do
img="${f##*/}" # get the filename
grep -qFr "$img" --include=*.html --include=*.php --include=*.css . ||
echo "$img not found"
done < <(find /img-dir -type f -print0) > imgNotFound.txt