Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej,
Mam ustawione pozostaw kopię poczty na serwerku. Wszystko działa na pop3.
Problem w tym że kolesiowi się przypomniało że w 2007 pisał do niego gosć.
Sprawdziłem archiwum i mam jakieś pliki ale jest ich 470005.
Czy macie jakiś sposób żeby nie otwierając ich znaleść nadawcę listu?
Nie dam rady otworzyć tyle plików :)
Dzięki
Redelek
Offline
cd katalog_poczty_usera
cat * | grep nazwa_nadawcy
Offline
ewentualnie można zrobić jeszcze tak:
cat * |grep adres_nadwcy |grep *2007
lub przepuścić przez grepa po adresie nadawcy i temacie (o ile pamięta(sz) :P) Ale poza tym to man grep i zabawy ;]
Offline
Problem jest w tym że tam jest gromadzona poczta wszystkich pracowników.
Musiałem otworzyć każdy plik i sprawdzić czy coś takiego jest.
udało się poleceniem
find /mnt/sdc/2007/07/ -type f -exec grep -q 'Szykana fraza lub adres e-mail' {} \; -print
potem wysłałem wynik do pliku i zrobiłem pentlę która wykopiowała mi dokładnie te e-mail o które mi chodziło do katalogu użytkownika.
Oczywiście znalazł e-mail kierowane do innych ale od tego nadawcy, ale to już ręcznie przegrzebałem bo z 47005 zrobiło się 100 plików :)
Dzięki za pomoc
Redelek
Offline
redelek napisał(-a):
Problem jest w tym że tam jest gromadzona poczta wszystkich pracowników.
Musiałem otworzyć każdy plik i sprawdzić czy coś takiego jest.
udało się poleceniemKod:
find /mnt/sdc/2007/07/ -type f -exec grep -q 'Szykana fraza lub adres e-mail' {} \; -printpotem wysłałem wynik do pliku i zrobiłem pentlę która wykopiowała mi dokładnie te e-mail o które mi chodziło do katalogu użytkownika.
Oczywiście znalazł e-mail kierowane do innych ale od tego nadawcy, ale to już ręcznie przegrzebałem bo z 47005 zrobiło się 100 plików :)
Dzięki za pomoc
Redelek
wystarczyło przepuścić przez drugiego grepa lub — jeszcze lepiej — drugie wyrażenie w tym grepie (grep -e)
Offline
udało mi się spłodzić taki akrypt i dość dobrze się sprawuje ;] aczkolwiek można go jeszcze poprawić ;]
#!/bin/bash DIR=$1; FILES=`ls $DIR` for i in $FILES do if ! [ -d $i ] then if (cat $DIR/$i | grep $2 > /dev/null) then echo wyszukiwana fraza znajduje sie w pliku: $i; fi fi done
Offline
Tylko grep, w przeciwieństwie do skryptu winnetou, nie wyłoży się jak nazwa pliku będzie zawierała spacje.
Offline
już by krytykowali :P a chciałem pomóc :P A tak na powaznie to nie testowałem z plikami ze spacją w nazwie, ale o ile mi wiadomo to pliki w katalogu ~/Maildir itepe nie zawierają w nazwie spacji. Następnym razem postaram się bardziej i dokładnie przetestuję ;]
Offline
Dziękuję wszystkim za pomoc
Wasze uwagi są najcenniejsze na świecie. Udało mi się dzięki waszej pomocy zrobić to co chciałem.
Wszystkim stawiam dużego + PLUSISKO :)
Dzięki dzięki jesteście wspaniali
Pozdrawiam
Redelek
Offline
winnetou: zawierają czy nie — zamieszczając taki kod propagujesz złe praktyki programistyczne.
A niech będzie: krytykowanie jest jedną z tych rzeczy które mi dobrze wychodzą.
Ostatnio edytowany przez Minio (2008-12-15 18:01:46)
Offline
Mój ostatni OT w tym temacie ;) To byl mój pierwszy skrypt bashowy który robił coś więcej niż tylko wypisywał Hello World czy wyliczał do 10 ;] Krytyka się przydaje, przyjąłem i postaram się poprawić ;) Nie obiecuję że następny będzie idealny ale postaram się by był lepszy od tego. No to buźka dla wszystkich krytyków ;)
Offline
winnetou: a to trochę zmienia postać rzeczy. Byłem przekonany że już kiedyś widziałem jakieś skrypty Twojego autorstwa na forum, stąd potraktowałem Cię jak kogoś kto ma doświadczenie.
W takim razie proszę, oto dwie propozycje jak to powinno być wykonane. Druga cokolwiek perwersyjna:
for file in /path/to/dir/*; do echo "$file" done
ls /path/to/dir | while read file ; do echo "$file" done
Zwracam uwagę na fakt, że zmienna w pętelce jest otoczona cudzysłowami. Generalnie zawsze należy zmienne otaczać cudzysłowami.
Offline
"skrypt" był a właściwie prośba o skrypt ale nie ważne ;] /* Dobra koniec bo mnie zaraz jakiś mod potraktuje czymś ciężkim ;] */
Offline