LINUX.ORG.RU

FIND+GREP

 , ,


0

1

Всем привет

Есть команда:

find ./ -name ‘*.txt’ -exec grep -f 250.txt -A2 -B2 -H {} ; > result.txt

В файле 250.txt находится списком 250 сайтов: site1.com site2.com site3.com …

Как сделать вывод результатов поиска не в result.txt а в отдельный файл по каждому сайту? к примеру: result_site1.com.txt result_site2.com.txt result_site3.com.txt

Подскажите, пожалуйста.

Проходиться не find’ом, а циклом, и работать с каждым сайтом отдельно. Да, будет медленнее (может даже на поряд{ок,ки}), зато как ты хочешь.

for i in $(cat 250.txt); do
  find ... -exec grep ... > "${i}.txt"
done

В этом случае ключ -f для grep не нужен.

mord0d ★★★ ()
Ответ на: Спасибо большое за ответ от edwlad

Потому что не /; а \;, и вместо -A2 -B2 можно писать -C 2. -H тоже вам скорее всего не нужен.

${i} - тоже какая-то ерунда, ${i} {} там должно быть.

А, и find тут и не нужен, grep может сам рекурсивно обходить каталоги.

Вы пытаетесь перебором подобрать правильную команду что ли?

micronekodesu ★★ ()
Последнее исправление: micronekodesu (всего исправлений: 3)