ファイル名に数字、「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」はインポートされません。