2015-12-08 48 views
1

我有一個圖像目錄(例如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'); 
+2

爲什麼這是張貼的標籤「php」?似乎是一個殼問題。 – maxhb

+1

舉例說明如何在我看到的作品的文件 – 123

回答

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 
+0

中引用圖像。但是,我可以只搜索文件名而不是路徑?例如而不是./aboutus/logos/test.png它應該是test.png? – user1009698

+1

現在檢查更新後的答案以僅使用基本文件名。 – anubhava

+0

我需要指定圖像所在的目錄,並指定htm/css/php目錄的位置,因爲它們處於不同的級別 – user1009698

相關問題