• XSS.stack #1 – первый литературный журнал от юзеров форума

Помогите модифицировать команду!

LAB

RAID-массив
Пользователь
Регистрация
03.11.2021
Сообщения
54
Реакции
7
Всем привет, я решил выдернуть все email со старого лога, представляет из себя кучу папок: папка US (страна) в ней папке ботов (Bot Id) в папке бота снова папка с инфой по боту - это несколько файлов один из которых текстовой. Из текстовых файлов и надо выдернуть мыла.
В настоящий момент команда выглядит так:

grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" /home/Log/* | cut -d\: -f2 | sort | uniq -i > /home/log/mail.txt

где log это папка с логом (формат которого описан выше) и файл конечный mail.txt это то куда собираются мыла. Команда работает отлично но с одним файлом txt.
И ищет она мыла только в одном текстовом файле из нужной папки.

Сам вопрос в следующем: как модифицировать команду что бы она искала мыла во всех файлах txt из папки log?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не понял какую галочку? Я про модификацию команды вопрос задал
у кристала есть решение которое тебе нужно, совершенно бесплатно и без всей этой дрочи, если тебе нужна именно дрочь, тогда извини.
 
Не рассматриваешь вариант использования python скрипта? Было бы проще и гибче.

галочку удалить дубли не забудь
Тс кажется использует линукс
 
Надеюсь правильно понял суть задачи

В корне, где лежит твоя дата создаем файл, например "main.py", и вставляем туда данный код:

Python:
import os, re

output = open("/home/log/mail.txt", "a+") # Путь до файла с результатами

for root, dirs, files in os.walk("."):
    for name in files:
        if name != "mail.txt": continue
        path = os.path.join(root, name)
        data = open(path).read()
        emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', data)
        output.write("\n".join(emails)+"\n")

Далее прописываем в консоль: python main.py (ну или твое название)
 
у кристала есть решение которое тебе нужно, совершенно бесплатно и без всей этой дрочи, если тебе нужна именно дрочь, тогда извини.
Речь идет о другой операционной системе, в Linux не работают виндовые программы.
 
Лучше сначала в файл скинуть всё:

grep -R -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" ./logs/*.txt | cut -d\: -f2 > mail.txt

А потом уже удалить дубли:

sort mail.txt | uniq > mail2.txt
Спасибо бро!
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх