次の約 1000 個のエントリを含むファイルがあります。
...
U9FzgsF2T-s
...
デフォルトではYouTubeの動画IDです。その後、次の名前のビデオでいっぱいのフォルダがあります。
007 - James Bond - Theme-U9FzgsF2T-s.opus
これで、テキストファイルのアイテムと部分的に一致しないフォルダ内のすべてのファイルを削除したいと思います(もちろん削除できないテキストファイルを除く)。
これを行うエレガントな方法はありますか?すべてのファイルが繰り返しリストされているかどうかを確認できますが、エントリが1000を超えると、特にスクリプトが数分ごとに実行されるため、時間がかかります。それでは、どうすれば効率的にこれを行うことができますか?デフォルトでは、フォルダ内のアイテムと部分的に一致しないすべてのファイルを削除しますか?
答え1
たぶん、grep -v
id-listの文字列のファイルのリストかもしれません。それは次のとおりです。
printf '%s\0' * | grep -zvF -e ID-LIST -f ID-LIST | xargs -0 echo
- ファイルを削除するには、
echo
次のように置き換えます。rm