Уловка, которую я еще не видел здесь, которая не использует extglob
, find
или grep
, заключается в обработке двух списков файлов как наборов и "diff" их с использованием comm
comm -23 <(ls) <(ls *Music*)
comm
предпочтительнее, чем diff
, потому что у него нет лишних сует.
Возвращает все элементы набора 1, ls
, которые не также в наборе 2, ls *Music*
. Это требует, чтобы оба набора были в отсортированном порядке для правильной работы. Нет проблем для ls
и расширения glob, но если вы используете что-то вроде find
, обязательно вызовите sort
.
comm -23 <(find . | sort) <(find . | grep -i '.jpg' | sort)
Потенциально полезно.