Sziasztok!
Adott maildir könyvtárból kellene kigreppelnem
a date, sender, subjectet és a végeredmény valami táblázatba rakni.
eddig jutottam.
cat *|grep -E '^(From|Date|Subject)'>valami.txt
Date: Tue, 18 Jan 2011 11:29:36 +0100
From: XYZ ZZZ [mailto:maci.laci@aa-bb.com]
Subject: valami1
Date: Tue, 18 Jan 2011 11:29:36 +0100
From: XYZ ZZZ [mailto:maci.laci@aa-bb.com]
Subject: valami2
Date: Tue, 18 Jan 2011 11:29:36 +0100
From: XYZ ZZZ [mailto:maci.laci@aa-bb.com]
Subject: valami3
Viszont valami ilyesmi kellene
Date From, Subject
Tue, 18 Jan 2011 11:29:36 +0100 XYZ ZZZ [mailto:maci.laci@aa-bb.com] valami1
Tue, 18 Jan 2011 11:29:36 +0100 XYZ ZZZ [mailto:maci.laci@aa-bb.com] valami2
köszönöm előre is a hintet
szép napot
Hozzászólások
Hm. Nem látom, hogy mi a francért van a te példádban minden harmadik sor után egy üres sor. Ha feltesszük, hogy csak simán olvashatóvá akartad varázsolni, akkor:
a grep után kivágod a szemétbe minden sorból az első szóköz/tabulátorig terjedő dolgokat (erre jó a cut), majd pedig az így kapott (már csak számodra értékes) adatokat tartalmazó sorokból hármat egymás mellé ragasztasz a paste nevű paranccsal.
Hintet kértél, tehát RTFM cut(1) és paste(1).
Köszi!
Amúgy kézzel írtambe nincs space.
A hintet köszi!
Hát ha ennyire nem megy ennyi embernek ...
cat * | grep -E '^(From|Date|Subject):' |
cut -d: -f2- |
paste - - -
Bár nem értem, miért nem jó a lenti sed megvalósítás (OK, elfelejtette kitörölni a kulcszavakat. Te viszont elfelejtetted a kulcszavak mögül a : karaktert.)
Nagyon köszönöm!!! Sajnos így is szétcsúszik.
Az első 6 sor még jó, tabbal elválaszta. aztán szétcsúszik.
Nagyon köszi mindenkitől, nem akarom az időtöket tovább rabolni.
szép napot
Azért ha még fontos a dolog, nem bánnám, ha kopiznád a "szétcsúszásig" a be- és a kimenetet - ui. nem értem, hogy mi és hogyan csúszhat szét.
Addig is még 2 sedes variáció a fenti témára, csak azért, mert ritkán és igen primitíven használok sedet, és most picit pótoltam a hiányt:
Én arra tippelek, hogy az egyik fájl valahogy másmilyen formátumú fejlécekkel rendelkezik, vagy esetleg magában a szövegnben is lehetnek a keresett szövegek. Eleve minden megoldás hibás, lévén csak a fejlécekben szabadna keresni, szóval kb "cat * | sed -n -e '1,/^$/p' | ...." formában kéne kezdeni. (Itt még a cat * is fölösleges, a grep-nél azért nem nyafogtam, mert nem vagyok benne biztos, hogy standard a grep -h opciója.)
A sed-es példáidhoz:
a) Erősen kihasználod, hogy Date/From/Subject sorrendben vannak a fejlécek, holott direkt belenéztem most egy levélbe, és ez nem feltétlenül igaz. (Szerintem ez a szabványban sincs benne.)
b) nincs semmi bajom a @-jellel, de miért nem a sokkal elterjedtebben ismert /-t használtad?
c) én inkább adnék a sed-nek egy -n opciót, és nem strapálnám magam a sortörlésekkel
d) azért parancssorból sed-ben cimkéket definiálni/használni, kemény perverzió.
a) Egyszerűen elhittem a példa alapján, hogy ezeket keressük.
b) Jellemzően a /-t használom, itt láttatni szerettem volna, hogy így is, úgy is lehet, illetve az egyszerre címző és cserélő példában azt, hogy mi hol kezdődik.
Különben nem is mondok teljesen igazat, mert nagyszámú csere esetén @-ra áll a kezem - jó sok éve, amikor az első m4/sed által feldolgozott konfigtemplétekbe pillantottam, a temp ill. szkript kukacosan tűnt olvashatóbbnak.
c) Hogy milyen igaz... Itt látszik, hogy 1: tényleg csak -e 's/x/y/g'-re szoktam használni, és 2: hiába futottam át ma a mant, ha túl gyorsan futottam, és a legelső(!) opciót átgörgettem.
d) Ki akartam ezt is próbálni, ha már a manban belegabalyodtam. :) ld. c)
Igen belenéztem a maildir filékbe és nem egyforma a sorrend. :-O
Ez lehet a gond.
Akár 9 féle sorrend is lehet...
Kipróbálom a küldött szkriptet...
Még egyszer köszi!!!
szép napot
G
Sajnos a gond a sorrendiséggel van A Mime ugyanis ezt nem írja elő.
Még arra gondoltam, hogy ha egy scrip megvizsgálná, hogy a file melyik típussal kezdődik (date, subject vagy from) és aszerint 3 csoportba sorolja őket. így keletkezne 3 jó csv...
Persze sajna ehhez sem értek :-(.
Javasolták nekem megoldásként a pearl mime értelmezőjét, de akkor be kell olvasni a teljes file-t.....
szép napot
G
Az én hintem az, hogy én perl-t vagy python-t használnék... Jön ugyanis majd olyan levél, aminek nem ASCII a subject sora, és akkor majd jön az a kérés is rögtön, hogy nem-e-lehetne-e a mindenféle elcsettintett encodingokat dekódolni, hogy olvasható is legyen a subject.
ez legyen a legkevesebb...
gagyi, de csv jellegu lesz:
--
A gyors gondolat többet ér, mint a gyors mozdulat.
nagyon köszi!!!
A cél az lenne, hogy úgymond egymás alá kerüljenek . a leírtak sajnos nem oldották meg, de köszi , hogy próbáltál segíteni....
Amit a fentiek és lentiek alapján valószínűleg legkönnyebben értelmezhetsz, ha olyanod támad:
A SEP lesz a mezőhatároló, esetemben vessző, hogy a comma comma legyen.