画像を含む画像フォルダがあるプロジェクトがあり、その一部は使用されないと確信しています。だから、他のファイルで参照されていないすべての画像を一覧表示したいと思います。私はターミナル使用経験があまりありませんが、これまで私が知っている内容は次のとおりです。
プロジェクトのルートフォルダにあります。
すべての画像を一覧表示します(すべてpngであることがわかります)。
find . -name "*.png" -exec basename {} \;
.svn にないファイルをすべて検索
grep -Iri --exclude-dir=".svn" 'searchTerm' .
今私は詰まっています。次のステップは、最初のコマンドをsearchTermに2番目のコマンドに成功せずに送信することでした。とにかく、これは私がやろうとしているものとほぼ反対です。ただし、有効な場合、結果は手動検査に使用できます。しかし、私が本当に望むのは、参照されていない画像を一覧表示することです。
答え1
次のことができます。
find . -name '*.png' |
awk -F/ '{print tolower($NF)}' |
sort -u > ~/tmp/png-files &&
grep -IhFriof ~/tmp/png-files --exclude-dir=".svn" . |
awk '{print tolower($0)}' | sort -u | comm -23 ~/tmp/png-files -
これにより、参照されたことのないpngファイルの小文字の名前が提供されます。
最初のパイプラインは、小文字のファイル名のソートされたリストを作成します。
固定文字列検索を実行し、一致するテキストのみを出力するために-f
withに渡します。grep
-F
-o
出力もソートされ、小文字に変換され、前のリストと比較されます。その後、最初のリストの項目のみを報告します。