Используйте параметр -l
, чтобы grep
печатал все имена файлов, соответствующие шаблону. Затем используйте xargs
, чтобы передать их в качестве аргументов cp
.
grep -l -E -i 'cultiv|protec|agricult' *.txt | xargs cp -t ~/desktop/filepath --
Опция -t
является расширением GNU cp
, она позволяет вам сначала поместить каталог назначения, чтобы он работал с xargs
.
Если вы используете версию без этой опции, вам нужно использовать опцию -J
для xargs
для замены в середине команды.
grep -l -E -i 'cultiv|protec|agricult' *.txt | xargs -J {} cp -- {} ~/desktop/filepath