パターンに一致するファイルの削除

パターンに一致するファイルの削除

ファイル名に数字、「x」、数字を含むすべてのサブディレクトリ内のすべてのファイルを少なくとも2回繰り返し削除する必要があります。

例:

次のファイルを削除したいと思います。

'aaa-12x123-123x12.jpg'
'aaa-12x12-123x12-12x123.jpg'

しかし、次のファイルは削除したくありません。

'aaa.jpg'
'aaa-12x12.jpg'
'aaaxaaa-123x123.jpg'
'aaaxaaa-aaaxaaa.jpg'

どうすればいいですか?(bashシェルから)

答え1

文字列には、数字の後に数字が含まれている場合、つまりパターンに一致する部分文字列が含まれているx場合にのみ、「数字の後に数字」が含まれます。したがって、名前がパターンと一致するファイルを削除しようとします。x[0-9]x[0-9]*[0-9]x[0-9]*[0-9]x[0-9]*.jpg

find /path/to/directory -type f -name '*[0-9]x[0-9]*[0-9]x[0-9]*.jpg' -delete

findファイルがない場合は、電話-deleteしてrmファイルを削除してください。

find /path/to/directory -type f -name '*[0-9]x[0-9]*[0-9]x[0-9]*.jpg' -exec rm {} +

答え2

正しいコマンドは次のとおりです。

find . -type f -iregex '.*[0-9]x[0-9]*\.jpg$'

これにより、「aaa-12x12.jpg」という名前のファイルのみがインポートされ、「aaa-12x12red.jpg」はインポートされません。

関連情報