LINUX.ORG.RU

Друзья, прошу помощи! Удалить файлы в строке которых содержиться -х

 


0

2

Друзья, подскажите скриптик или может быть комбинацию find | grep я что-то с утра туплю очень. Есть папка, в ней около сотни других папок,в каждой из этих папок есть файл или несколько файлов, в одном из них есть постоянная строка скажем это емайл, как удалить все файлы где в теле файла встречается нужный емайл?

Заранее спасибо друзья!

--------------------------------------------------------- Решение, кому-то может пригодиться:

Сначала ищем все файлы содержащие нужный текст, выводим только имена файлов с указанием пути

grep -Hr искомый_текст /директория_где_искать | cut -d: -f1 | sort -u

После того как посмотрели все что нашли можно смело удалять:

grep -Hr искомый_текст /директория_где_искать | cut -d: -f1 | sort -u | xargs rm

Все. :)



Последнее исправление: yakunin (всего исправлений: 2)
grep -Ri email | awk -F ':' '{ print$1}'

А удалить, соответственно,

grep -Ri email | awk -F ':' '{ print$1}' | xargs rm
anonymous
()

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


$ cat /usr/local/bin/ascii_grep.sh

#! /bin/sh
file "$1" | grep -q 'text' && grep -l "$2" "$1"

#-------------------------------------------------

find / -type f -exec /usr/local/bin/ascii_grep.sh {} "user@server.com" \;

anonymous
()

Спасибо за помощь всем.

yakunin
() автор топика
Ответ на: комментарий от anonymous

Реальный пример давай. Или ты не знаешь?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.