The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Kak сделать split на mbox"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Kak сделать split на mbox"
Сообщение от Sasha Искать по авторуВ закладки(??) on 16-Мрт-05, 12:13  (MSK)
HI all.
Есть задача из /var/mail/my_inbox стелать в конкретной директории кучу файлов - ровно столько сколько у меня в боксе писем.
Есть ли для этого стандарный способ ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Kak сделать split на mbox"
Сообщение от Lisa Искать по авторуВ закладки(ok) on 16-Мрт-05, 12:19  (MSK)
>HI all.
>Есть задача из /var/mail/my_inbox стелать в конкретной директории кучу файлов - ровно
>столько сколько у меня в боксе писем.
>Есть ли для этого стандарный способ ?
если ваша почта: mail
если чужая: mail -f /var/mail/my_inbox

косанда mail:
s 2 mybox1 - записать второе сообщение в файл mybox1
d 2 - удалить второе сообщение
q - выход
x - выход и восстановление удаленных сообщений


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Kak сделать split на mbox"
Сообщение от Sasha Искать по авторуВ закладки(??) on 16-Мрт-05, 12:33  (MSK)
>>HI all.
>>Есть задача из /var/mail/my_inbox стелать в конкретной директории кучу файлов - ровно
>>столько сколько у меня в боксе писем.
>>Есть ли для этого стандарный способ ?
>если ваша почта: mail
>если чужая: mail -f /var/mail/my_inbox
>
>косанда mail:
>s 2 mybox1 - записать второе сообщение в файл mybox1
>d 2 - удалить второе сообщение
>q - выход
>x - выход и восстановление удаленных сообщений
Мне нужно мемного другое ...
мой маилбох содержит к примеру 50 писем.
Я хочу обработав его на выходе в директории ( к примеру) /tmp/xxx получить файлы
xxx1
xxx2
....
xxx50
Где в каждом файле содержится по одному сообщению


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Kak сделать split на mbox"
Сообщение от allez Искать по авторуВ закладки(ok) on 16-Мрт-05, 12:52  (MSK)
#!/bin/bash
declare -i I=0
while read STRING;
do
  [ "`echo $STRING | egrep '^From\ '`" != "" ] && I=$I+1
  echo $STRING >> /tmp/xxx$I
done < inbox
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Kak сделать split на mbox"
Сообщение от Sasha Искать по авторуВ закладки(??) on 16-Мрт-05, 12:58  (MSK)
>#!/bin/bash
>declare -i I=0
>while read STRING;
>do
>  [ "`echo $STRING | egrep '^From\ '`" != "" ]
>&& I=$I+1
>  echo $STRING >> /tmp/xxx$I
>done < inbox
Hmm !!!!
И то верно ...
THX Большой
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Kak сделать split на mbox"
Сообщение от Sasha Искать по авторуВ закладки(??) on 16-Мрт-05, 13:09  (MSK)
>THX Большой
hmm только он таб и * в недере меняет на список файлов в директории :(


  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Kak сделать split на mbox"
Сообщение от allez Искать по авторуВ закладки(ok) on 16-Мрт-05, 13:26  (MSK)
>>THX Большой
>hmm только он таб и * в недере меняет на список файлов
>в директории :(

Тогда возьмите имя переменной в кавычки:
echo "$STRING" >> /tmp/xxx$I

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Kak сделать split на mbox"
Сообщение от Als Искать по авторуВ закладки(??) on 16-Мрт-05, 15:26  (MSK)
Лежало вместе с Spamassassin

#!/usr/bin/perl -w

# mboxsplit - split a mailbox into separate files
#
# <@LICENSE>
# Copyright 2004 Apache Software Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# </@LICENSE>

my $prog = $0;
$prog =~ s@.*/@@;

use vars qw($opt_h $opt_f $opt_i $opt_n);
use Getopt::Std;
getopts("hf:in:");

sub usage {
    my $status = shift;

    my $out = $status ? STDERR : STDOUT;
    print $out <<EOF;
usage: $prog [options] [mbox folders]

-h         print this help
-f format  set printf string to format
-i         ignore leading data until reaching mbox separator
-n n       set initial sequence number to n

mboxsplit splits mbox folders into separate files.  If no mbox folders
are specified, standard input is used.

"format" is a string formatted using the sprintf format used by Perl.
It should include a "%d" or other integer directive which will be
replaced by a sequence number (starting with 1 and counting upwards).
The default is "%d".

EOF
    exit($status);
}

usage(0) if $opt_h;

if (! $opt_f) {
    $opt_f = "%d";
}

my $file_no = defined($opt_n) ? $opt_n - 1 : 0;
my $file_open = 0;

while ($line = <>) {
    if ($file_open == 1 && $line =~ /^From /) {
        close(OUTFILE);
        $file_no++;
        $file_open = 0;
    }
    if ($file_open == 0) {
        if ($file_no == 0) {
            next if $opt_i && $line !~ /^From /;
            $file_no++;
        }
        open(OUTFILE, '>' . sprintf($opt_f, $file_no));
        $file_open = 1;
    }
    print OUTFILE $line;
}

if ($file_open == 1) {
    close(OUTFILE);
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру