/Dir2
に存在しない/Dir1
のファイルを削除しようとしています。問題は、最初の数文字は一致しますが、最後の数文字は一致しません。例えば。ファイルの末尾が一致しない場合
/Dir1
abc_def.png
xyz_xyz.png
/Dir2
abc_ghi.png
「abc」が一致する限り、最後の数文字が異なっていてもファイルを削除したくありません。削除したい唯一のファイルは/Dir2
に存在しないため、xyz.png
です。これをどうやってやりますか? rm
前echo
を削除し、
cd /Dir1
for f in *_*; do
[[ -f /Dir2/"${f%%_*}"* ]] || echo rm "$f"
done
一度満足:
代わりに '/ Dir2'に' ghi_abc.png'というファイルがあったらどうなりますか? '/ Dir1'の' abc_def.png'は削除されませんか? –
正解ですが、削除されません。最初の3文字に依存してほしい。 – kkd92
'/ Dir1'のファイルのアンダースコアの前に、ファイル名の最初の部分に依存していますか? –