Помогите, затык у меня при формировании команды.
Задача - найти все файлы, в которых есть слово 'failure' и переместить их куда подальше
Последний "релиз" был такой:
find ./ -type f -exec grep -l 'failure' {} | xargs -p -i mv {} /var/qmail/queue/failure/{} \;
никак не получается сформировать строку для mv
РЕШЕНО:Поиск файла по содержимому и перенос его в другую папку
Модераторы: SLEDopit, Модераторы разделов
-
Валентин
- Сообщения: 18
- ОС: openSUSE
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: РЕШЕНО:Поиск файла по содержимому и перенос его в другую папку
Код: Выделить всё
find ./ -type f -exec grep -l 'failure' {} \&\& mv {} /var/qmail/queue/failure/ \;Вот как-то так. (на полную синтаксическую корректность и работоспособность не проверял).
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: РЕШЕНО:Поиск файла по содержимому и перенос его в другую папку
Код: Выделить всё
find . -type f |xargs grep -l failure |xargs mv -t /var/qmail/queue/failureКод: Выделить всё
find . -type f |xargs grep -l failure |xargs sh -c 'mv "$@" /var/qmail/queue/failure' shКод: Выделить всё
find . -type f -exec grep -l failure '{}' \; -exec mv '{}' /var/qmail/queue/failure \;Мои розовые очки
-
Валентин
- Сообщения: 18
- ОС: openSUSE
Re: РЕШЕНО:Поиск файла по содержимому и перенос его в другую папку
Пишет:
Код: Выделить всё
./4240556
grep: &&: No such file or directory
grep: mv: No such file or directory-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: РЕШЕНО:Поиск файла по содержимому и перенос его в другую папку
Валентин писал(а): ↑27.05.2009 12:40Пишет:
Код: Выделить всё
./4240556 grep: &&: No such file or directory grep: mv: No such file or directory
Хорошо, уточняю свой вариант (заодно проверив):
Код: Выделить всё
find ./ -type f -exec bash -c "grep -l 'failure' {} && mv {} /var/qmail/queue/failure/" \;Но у watashiwa_daredeska решения более прямые, судя по всему.
-
Frank
- Сообщения: 1059
- ОС: Ubuntu, Debian
Re: РЕШЕНО:Поиск файла по содержимому и перенос его в другую папку
grep -rl ./ failure |xargs sh -c 'mv "$@" /var/qmail/queue/failure' sh
так не достаточно?
find не нужен, grep всё равно только с файлами и работает ведь
так не достаточно?

-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: РЕШЕНО:Поиск файла по содержимому и перенос его в другую папку
если очень много найдет можно к xargs ключик -l использовать. чтобы по одному.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.