Показать сообщение отдельно

  #11  
Старый 07.07.2023, 18:29
VasiliyP
Постоянный
Регистрация: 30.08.2011
Сообщений: 358
Провел на форуме:
66828

Репутация: 11
По умолчанию

Цитата:
Сообщение от CRACK211  

perl -lne 'print for /([A-Za-z0-9._%+-]+)@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}/g' file.txt

всем привет. подскажите пожалуйста что нужно добавить в команду чтобы поиск и запись проходила и в подпапках?

Код:
find ~ -name "*.txt" -exec cat {} \; |  perl -lne 'print for /([A-Za-z0-9._%+-]+)@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}/g'
find - искать файлы

~ - в домашнем каталоге, можно указать любой

-name "*.txt" - с расширением txt

-exec cat {} \; - вывести файл в stdout

А далее вывод поступает на вход perl-скрипта.

Если нужно искать вообще во всех файлах, то вместо

-name "*.txt"

можно указать

-type f

это значит что интересует обычный файл (а не директория, которую нельзя давать утилите cat)
 
Ответить с цитированием