ファイル名に「x」と数字が続く数字が少なくとも2回含まれているすべてのサブディレクトリ内のすべてのファイルを再帰的に削除する必要があります。
例:
これらのファイルを削除したいと思います。
'aaa-12x123-123x12.jpg'
'aaa-12x12-123x12-12x123.jpg'
しかし、私はこれらのファイルを削除したくありません:
'aaa.jpg'
'aaa-12x12.jpg'
'aaaxaaa-123x123.jpg'
'aaaxaaa-aaaxaaa.jpg'
どうすればよいですか(bashシェルから)
文字列には、数字の後に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 {} +
正しいコマンドは次のとおりです。
find . -type f -iregex '.*[0-9]x[0-9]*\.jpg$'
これは、「aaa-12x12.jpg」という名前のファイルのみを取得し、「aaa-12x12red.jpg」は取得しません。