Nagy mbox fájl darabolása

 ( igiboy | 2013. július 2., kedd - 16:04 )

Van 2db mbox fájlom, egyenként 9-10GB körüliek. Ezt szeretném ugy szétszedni, hogy pl. az Evolution meg tudja majd enni.
Akár darabszámos darabolás is érdekelne, de jobb lenne ha havonta vagy legalább évente tudna bontani.

Ami scripteket és parancsokat találtam, azok nem működtek.
Annyit már sikerült elérnem hogy egyenkét 1-1 fájlba kerültek az emailek.
Így viszont egy örökkévalóság lenne az egyenként importálás.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

hasznalj Maildirt mbox helyett, es konvertalj: http://batleth.sapienti-sat.org/projects/mb2md/

Nem mailserver-ről van szó, hanem csak egy win2linux migráció. Lett 2db nagy mbox fájl amit a thunderbird csinált outlook-ból. Érdekes hogy a thunderbird sem birja kezelni.

Azt már elértem, hogy egyenként legyenek a levelek fájlokban. Most jó lenne szétválogatni dátum szerint. Majd pedig ezt egyesíteni egy-egy fájlba. Pl. évenként.

mb2md ismerős (talán ez sem ment), de egy megfeleőlen szerkesztett csplit paranccsal sikerült szétkapnom levelenként.

Amit most keresnék az legfőképp az alábbi két dolog:
- Fájlok válogatása benne lévő adat szerint (első sorban ott a dátum "From - Mon, 3 Oct 2011 06:15:39" fomátumban)
- Válogatott fájlok egyesítése

formail parancs nem jó erre?

Hogyan?

Nem tudom csak ez ugrott be mailbox kezelésről.

Most épp awk, grep és hansonló parancsokból próbálok összerakni valamit.

Megvan még az outlook(pst?) szedd szét azzal ahol még működött.

Már nincs meg.
Már szét van szedve, válogatva is évente. Még szeretnék annyit hogy ne legyenek nagyok az összefűzött mbox fájlok. Így vagy méret vagy darab szerint több kimeneti fájlba szeretném összefűzni.

dupla, bocsi.

Sikerült megoldani.
Lehet nem a legszebben. A végeredmény viszont működik.

Ha esetleg később is lenne valakinek ilyen problémája azért leírom mi volt a megoldás.

Az hogy hány levél van 1-1 fájban az alábbi paranccsal kideríthető:
grep -c "^From " filename

Nagy mbox szétszedése 1-1 fájra:

csplit -n 5 -k mboxfile '/^From /' '{*}'

Fájlok válogatása évek (2012) szerint, átmásolja egy másik könyvtárba:
grep -H 'From - ' * | grep ' 2012 ' | cut -d: -f1 | xargs cp -t ./2012/

A fájlok összefűzése maximum 1GB körüli fájlokká:

#!/bin/sh
dfilecount=1;
for sfilename in xx*
do
    dfilename="out.$dfilecount";
    cat $sfilename >> $dfilename
    filesize=$(stat -c '%s' $dfilename)
    if [ $filesize -gt 1000000000 ]; then
	dfilecount=$((dfilecount+1))
    fi
done

Szep. Bar szerintem elobb kene meretet ellenorizni (nem lepnem-e tul) es csak utana hozzacsapni. Ugyanis - szigoruan elvi szinten - a jelenlegi felallasban eloallhat az, hogy 1GB -1 byte-nal jarsz mig a kovetkezo majdnem ugyanannyi (tudom, csekely eselye van az 1GB-os - egyetlen e-mailnek), de azt meg hozzaragasztod az elozoek vegehez.

Majd a következő verzióban benne lesz. :D
Most örülök neki hogy megvannak a levelek.