サフィックスが異なる「重複」を削除してファイルのリストを作成します。

サフィックスが異なる「重複」を削除してファイルのリストを作成します。

(私の考えでは)少しのスクリプト魔法が必要な問題がありますが、何が最善なのかはわかりません...

jpg、gif、png、tiff、svgなど、さまざまな形式の画像を含むディレクトリがあります。

一部(すべてではありません!) pngとsvgファイルはペアで提供されます。同じイメージのpngおよびsvgバージョンでは、ファイル名は同じで、サフィックスのみが異なります(例:figleaf.pngおよびFigleaf.svg)。

(で作成された)ファイルのリストをインポートし、lsすべてのツインsvgバージョンを削除し、pngバージョンのみを残すにはスクリプトが必要です。 png-twinのないsvgファイルを含む他のすべてのファイル(ツインではない)はリストに残る必要があります(ツインのpngバージョンも同じです)。または、すべてのsvgファイルのリストを生成する適切なpng-twinスクリプトを使用します。

一部のツインバージョンはお互いに少し異なる場合があると思います。 Figleaf.pngとFigLeaf.svg - スクリプトが可能であれば良いでしょう。オプションで大文字と小文字を無視するように変更されました。

ベストアンサー1

bash / kshを使用してこれを行うことができます。

for i in *.svg; do test -e "${i%.*}.png" && rm "$i"; done

または他の形式で:

for i in *.svg; do
    test -e "${i%.*}.png" && rm "$i"
done

実際の削除を実行する前にテストと交換してくださいrmecho

編集する:

Sputnickは彼の答えでこれに非常に似た解決策を編集しました。彼が初めて答えたので、彼の解決策を受け入れる必要があります。

おすすめ記事