2016-12-22 2 views
-1

Мне нужно переместить файлы в мой домашний каталог в новый каталог. Мне нужно выбрать файлы с именами, которые начинаются со случайного набора из 20 заглавных букв. Случайное множество будет состоять только из 4 букв: T, A, G или C. Из-за изменчивости искомых имен и наличия имен, которые состоят из 20 последовательных заглавных букв, но без соответствия T, A, G , или C только требование, regex кажется лучшим вариантом здесь.One-liner для перемещения файлов, соответствующих шаблону, в новый каталог

Я попытался использовать регулярное выражение, но оно не работает с этим однострочным.

find source -name "([TAGC]{20})" -exec mv -i {} -t ~/dst \; 

Есть ли способ сделать это, или аналогичный, один-лайнер работы в этой ситуации, или мне нужно написать сценарий?

+0

Добро пожаловать на переполнение стека! Что происходит, какая ошибка вы получаете? – TTT

+0

Попробуйте '-regex' вместо' -name'. Однако вам понадобится тот, который соответствует полному имени, а не только его части. –

ответ

1

Вы можете попробовать -regex вариант:

find . -regex ".*/[TAGC]{20}[^/]*$" -exec mv -i {} -t ~/dst \; 
1

регулярное выражение должно соответствовать полное имя файла, которые начинаются с ./

find . -regextype posix-egrep -regex '\./[TAGC]{20}' -print 

 Смежные вопросы

  • Нет связанных вопросов^_^