Команда/скрипт Linux для поиска всех файлов в каталоге с 4-значным номером

Команда/скрипт Linux для поиска всех файлов в каталоге с 4-значным номером

У меня есть папка, содержащая несколько других папок, каждая из которых названа в следующем формате:

Company XYZ (1999 OneWordDescription)

Я пытаюсь отфильтровать те, которые отмечены как 1995 или старше, чтобы я мог переместить их в другую папку, а затем вручную удалить их. Дата изменения/создания не поможет, так как все они были изменены с тех пор, а даты создания просто неточны по какой-то причине.

Какую команду или скрипт Linux я могу запустить, чтобы переместить все файлы с "(1995" и старше в другой каталог?

решение1

Чтобы переместить все папки за годы с 1980 по 1995 включительно, выполните:

shopt -s nullglob
mv *'('{1980..1995}*/ /some/path/

Команда shopt -s nullglobне является строго обязательной, но она устраняет сообщения об ошибках, если какой-либо год отсутствует.

Вышеприведенное использует расширения фигурных скобок, {1980..1995}чтобы явно генерировать все годы. Вы можете увидеть, как работает расширение фигурных скобок, используя только echoоператор:

$ echo {1980..1995}
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995

Связанный контент