Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Найти и удалить

Ответить
Настройки темы
Найти и удалить

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Задача: в определённом каталоге удалить все файлы содержащие текст "qwerty". Пока что у меня заработало только так
Код: Выделить весь код
rm -f `grep qwerty -l ./my_path/*`
Но я-то знаю, то это не совсем корректно. Скажем, если файлов слишком много нужно использовать xargs. А вот с find -exec у меня ничего не выходит. Покажите примерчик, plz, а дальше я сам разберусь.

Отправлено: 09:15, 09-09-2005

 
SMV SMV вне форума

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
 #!/usr/bin/perl -w
 
 my $str=$ARGV[0];
 my $path=$ARGV[1];
 my @grep_out=`grep $str $path/*`;
 my ($file,$s);
 
 foreach $file (@grep_out){
     ($file,$s) = split(':', $file); 
     print "rm $file...\n";
     unlink $file;
 }
Можно, например, так.

Отправлено: 21:42, 10-09-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


man find
/delete
Код: Выделить весь код
 -delete
             Delete found files and/or directories.  Always returns true.
             This executes from the current working directory as find recurses
             down the tree.  It will not attempt to delete a filename with a
             ``/'' character in its pathname relative to ``.'' for security
             reasons.  Depth-first traversal processing is implied by this
             option.
э-э-э вообще-то я всегда боюсь так чохом, но если уж очень хочется, то что-то такое:
Код: Выделить весь код
find my_path/ -name "qwerty*" -delete
или, только файлы:
Код: Выделить весь код
find my_path/ -name "qwerty*" -type f -delete

Отправлено: 22:15, 10-09-2005 | #3


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


SMV
Спасибо, на перле я и сам лёгкостью могу это решить. А вот без перла...
mar
Вы, видимо, не совсем поняли: "qwerty" должно быть не в названии, а в содержимом файла.

Отправлено: 22:33, 10-09-2005 | #4

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Пардон, торможу
Забавно:
Код: Выделить весь код
find ../test -type f -print | xargs grep qwerty
отрабатывает правильно, а с -delete сносит все :/ Надо подумать

Отправлено: 23:21, 10-09-2005 | #5


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


mar
Хм, казалось, с find я уже все варианты перепробовал, а вот так у меня получилось:
Код: Выделить весь код
find ../test -type f -print | xargs grep -ls qwerty| xargs rm -f
Спасибо.

Отправлено: 10:02, 11-09-2005 | #6

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


pi-a-ner
работает И впрямь я вчера сильно тормозила, пардон

Отправлено: 11:33, 11-09-2005 | #7



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Найти и удалить

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как удалить свою тему, или почему я не могу удалить свою тему. ответьте плз DreDo О сайте и форуме 6 12-11-2009 23:25
Разное - [решено] Как удалить ярлык с рабоч. стола, если в контекстном меню нет пункта Удалить Denkxx Microsoft Windows 7 5 25-09-2009 14:56
Удалить Виста sa-12 Microsoft Windows Vista 1 05-06-2007 13:22
ASPI удалить Cursed Microsoft Windows 2000/XP 4 01-11-2005 09:25
как удалить AD ILLUHA Microsoft Windows NT/2000/2003 8 25-06-2004 07:40




 
Переход