Как переместить файл после определения его LS | egeep, или "egeep" vs "Найти"

Вы ищете команду xargs . Обычно вы используете его так:

find . -name src -print0 | xargs -I{} -0 echo {}

или для вашего явного вопроса:

find . -name src -print0 | xargs -I{} -0 cd {}
1
15.10.2018, 10:57
1 ответ

С помощью findвы должны не объединять команды через конвейер.

У него есть хороший флаг -regex, которому вы можете передать строку соответствия имени файла:

find. -regextype egrep -regex ".*facility_([0-9]*)\+SOURCE[0-9]*.*" -exec mv {} DIRECTORY \;

Окончательный \;передает каждое из совпадающих имен файлов в mvвместо {}.

Как видите, вам нужно использовать .*в начале и в конце регулярного выражения, потому что findнужно обработать на весь путь:

-regex pattern
       File name matches regular expression pattern.  This is a match on the whole path, not a search. For  example, to  match  a  file named './fubar3', you can use the regular expression '.*bar.' or '.*b.*3', but not 'f.*r3'.
3
27.01.2020, 23:23

Теги

Похожие вопросы