txt filebol sorok kivalogatasa
Udvozlet Mindenkinek, Egy hosszu txt-filebol szeretnem minden negyedik sort kiszedni, hogy azokat dolgozzam fel a tovabbiakban. Hogyan lehet megoldani? Nem vagyok jartas ilyen temaban. Koszonom, -- Dr. Janos Korponai West-Transdanubian District Environmental and Water Authority, Dept. Kis-Balaton H-8360 Keszthely, Csik F. str. 4 Hungary e-mail: korponai.ja...@nyuduvizig.hu, http://members.iif.,hu/korponai.janos _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
János Korponai írta: Udvozlet Mindenkinek, Egy hosszu txt-filebol szeretnem minden negyedik sort kiszedni, hogy azokat dolgozzam fel a tovabbiakban. Hogyan lehet megoldani? Nem vagyok jartas ilyen temaban. Kedves János! Az awk-t és a kezdő listát javasolnám neked erre. De mondjuk én így csinálnám: cat file | awk '{if(NR%4==0) print $0}' Biztos van ennél elegánsabb megoldás is, de reggel van még. _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
On Tue, Jun 05, 2012 at 08:18:39AM +0200, János Korponai wrote: Udvozlet Mindenkinek, Egy hosszu txt-filebol szeretnem minden negyedik sort kiszedni, hogy azokat dolgozzam fel a tovabbiakban. Hogyan lehet megoldani? Nem vagyok jartas ilyen temaban. Koszonom, -- Dr. Janos Korponai Egy favágó megoldás: cat file | while read a read b read c read d; do echo $d; done Ha nagyon számítanak a sorelején levő szóközök, előtte kell egy export IFS='\n' is. -- PTG Documentation: Instructions translated from Swedish by Japanese for English speaking persons. Debian Lenny _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
On 06/05/2012 08:18 AM, János Korponai wrote: Egy hosszu txt-filebol szeretnem minden negyedik sort kiszedni, hogy azokat dolgozzam fel a tovabbiakban. Hogyan lehet megoldani? Nem vagyok jartas ilyen temaban. perl -n -e '$.%4==0 and print' infile outfile De ez nem különbözik lényegesen az awk megoldástól. Csak a teljesség kedvéért közlöm. :-) g -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
Kovács Attila ka...@l3.hu írta (2012. június 5. 11:17): 2012.06.05. 10:25 keltezéssel, Kiss Gabor írta: Csak a teljesség kedvéért közlöm. :-) g Jajj de szépek lettek :). Csak a teljesség kedvéért, hogy miért a sed mellett törnék lándzsát :). ls -laH `which awk sed perl python` -rwxr-xr-x 1 root root 55324 2010-11-16 11:14 /bin/sed -rwxr-xr-x 1 root root 98536 2010-01-14 17:53 /usr/bin/awk -rwxr-xr-x 2 root root 1220276 2011-04-26 18:21 /usr/bin/perl -rwxr-xr-x 1 root root 2375356 2011-04-11 21:14 /usr/bin/python Mindegyiknek szüksége van a libc-re, ami közel két nagyságrenddel nagyobb, mint a sed és az awk binárisa... _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
On 6/5/2012 12:45 PM, Attila Rajmund Nohl wrote: Kovács Attilaka...@l3.hu írta (2012. június 5. 11:17): 2012.06.05. 10:25 keltezéssel, Kiss Gabor írta: Csak a teljesség kedvéért közlöm. :-) g Jajj de szépek lettek :). Csak a teljesség kedvéért, hogy miért a sed mellett törnék lándzsát :). ls -laH `which awk sed perl python` -rwxr-xr-x 1 root root 55324 2010-11-16 11:14 /bin/sed -rwxr-xr-x 1 root root 98536 2010-01-14 17:53 /usr/bin/awk -rwxr-xr-x 2 root root 1220276 2011-04-26 18:21 /usr/bin/perl -rwxr-xr-x 1 root root 2375356 2011-04-11 21:14 /usr/bin/python Mindegyiknek szüksége van a libc-re, ami közel két nagyságrenddel nagyobb, mint a sed és az awk binárisa... Sizes of busybox-1.19.4 and busybox-1.20.0 (with equivalent config, static uclibc build): textdata bss dec hex filename 840348 4737508 848329 cf1c9 busybox-1.19.4/busybox 843717 4737500 851690 cfeea busybox-1.20.0/busybox _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
On 06/05/2012 09:35 AM, Erki-Kiss Zsolt wrote: sed -n '1~4p' Van egy kis gond! Ez nem minden negyedik sort szedi elõ, hanem az elsõt, és _azután_ minden negyediket. Helyesen sed -n '4~4p' Én is erre szavazok egyébként. :) g _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
On 06/05/2012 01:14 PM, Magosányi Árpád wrote: Igazából meg szerintem egy ilyen feladatnál a végrehajtási idő számít, és méretlenbe azt mondom, hogy a sed-et senki nem fogja ebben a feladatban megverni. Azért a Perl nem sokkal marad le (-: $ time for a in `seq 1 100`; do echo $a ;done /dev/null real0m16.828s user0m16.377s sys 0m0.596s $ time for a in `seq 1 100`; do echo $a ; done | sed -n '4~4p' /dev/null real0m24.939s user0m22.937s sys 0m7.224s $ time for a in `seq 1 100`; do echo $a ; done | perl -n -e '$.%4==0 and print' /dev/null real0m26.905s user0m26.818s sys 0m8.733s g _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
2012.06.05. 14:22 keltezéssel, Kiss Gabor írta: ati@$ time perl -n -e '$.%4==0 and print' ff /dev/null real0m0.864s user0m0.836s sys0m0.016s ati@$ time sed -n '4~4p' ff /dev/null real0m0.319s user0m0.296s sys0m0.020s Előtte az ff legenerálva offcz. Persze hogy nem volt nagy difi, ha a csőbe lassan megy be a cumó. -- k-atti- _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: txt filebol sorok kivalogatasa
2012-06-05 14:22 keltezéssel, Kiss Gabor írta: On 06/05/2012 01:14 PM, Magosányi Árpád wrote: Igazából meg szerintem egy ilyen feladatnál a végrehajtási idő számít, és méretlenbe azt mondom, hogy a sed-et senki nem fogja ebben a feladatban megverni. Azért a Perl nem sokkal marad le (-: $ time for a in `seq 1 100`; do echo $a ;done /dev/null real0m16.828s user0m16.377s sys 0m0.596s $ time for a in `seq 1 100`; do echo $a ; done | sed -n '4~4p' /dev/null real0m24.939s user0m22.937s sys 0m7.224s $ time for a in `seq 1 100`; do echo $a ; done | perl -n -e '$.%4==0 and print' /dev/null real0m26.905s user0m26.818s sys 0m8.733s imho kicsi a fájl, és a sorok zöme azonos hosszúságú. # dd if=/dev/urandom bs=1M count=100 | base64 | sed 's/[ABC]/\n/g' nagyfile.txt # time perl -n -e '$.%4==0 and print' nagyfile.txt /dev/null real0m3.425s user0m3.352s sys 0m0.068s # time sed -n '4~4p' nagyfile.txt /dev/null real0m1.454s user0m1.396s sys 0m0.052s Na, itt látszik az igazi különbség. _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: dist-upgrade + lvm snapshot
SZABO Zsolt sz...@mm.bme.hu writes: A cel az lenne, hogy pl. egy dist-upgrade-be ugy lehessen belevagni, hogy ha valami nagyon nem jonne ossze, akkor egyszeruen vissza lehessen allni az eredeti rendszerre. Ehhez 1. letre kellene hozni a modositas altal erintett kotetek snapshotjat: lvcreate -n ${orig_name}_snapshot -s -L $affected_size $vg (Ezt ugye lecsatolt vagy befagyasztott fájlrendszerek alatt csinálod.) 2. Modositas pl. dist-upgrade 3. ha OK, akkor: lvremove *_snapshot ha nem: ??? + reboot (v. reboot + ??? backup script?) Szoval itt a vegen kicsit elakadtam: hogy tudom visszacsinalni, ha valami nem tetszene? Vagy átállsz a snapshotok használatára (az fstabban és esetleg egyebütt), amíg megjavítod a frissített rendszert, vagy visszaírod a snapshotokat az lvconvert --merge paranccsal (amit nem biztos, hogy a régi rendszered támogat). Végső esetben a visszaírást kézzel is csinálhatod, de akkor offline. -- Feri. _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: dist-upgrade + lvm snapshot
On Tue, 5 Jun 2012, Ferenc Wagner wrote: SZABO Zsolt sz...@mm.bme.hu writes: A cel az lenne, hogy pl. egy dist-upgrade-be ugy lehessen belevagni, hogy ha valami nagyon nem jonne ossze, akkor egyszeruen vissza lehessen allni az eredeti rendszerre. Ehhez 1. letre kellene hozni a modositas altal erintett kotetek snapshotjat: lvcreate -n ${orig_name}_snapshot -s -L $affected_size $vg (Ezt ugye lecsatolt vagy befagyasztott fájlrendszerek alatt csinálod.) Hat, tudom, hogy igy a biztos... :-) (persze a fonti parancssorban a $vg LV-t jelent...: lvcreate -n ${orig_lv}_snapshot -s -L $affected_size ${orig_lv} vagy ilyesmi, ha jol gondolom) Azt nem egeszen latom, hogy pl. a fentivel ekvivalens-e a kov.: lvcreate -n ${orig_lv}_snapshot -L $affected_size ${orig_lv} lvconvert -s ${orig_lv} ${orig_lv}_snapshot ??? 2. Modositas pl. dist-upgrade 3. ha OK, akkor: lvremove *_snapshot ha nem: ??? + reboot (v. reboot + ??? backup script?) Szoval itt a vegen kicsit elakadtam: hogy tudom visszacsinalni, ha valami nem tetszene? Vagy átállsz a snapshotok használatára (az fstabban és esetleg egyebütt), amíg megjavítod a frissített rendszert, vagy visszaírod a Ezt akkor kb. igy kellene csinalni, ugye: cd /etc cp -a fstab fstab.bak sed -i -r 's:(root|var|usr|tmp):\1_snapshot:' fstab # felteve hogy az erintett lv-k root,var, stb. nevuek) ... es ezutan letrehozni a snapshot-okat (a befagyasztott filerendszerekhez) majd mv fstab.bak fstab es upgrade, stb. es ha nem tetszik az eredmeny, akkor boot parameternek a root_snapshot-ot megadni root particionak snapshotokat az lvconvert --merge paranccsal (amit nem biztos, hogy a régi rendszered támogat). Végső esetben a visszaírást kézzel is A támogatottság nem az lvm1 v. lvm2-n múlik? Amúgy LVM2 van... Ekkor ha kiadom a mountolt lv-kre a -merge-et, akkor a következő boot-nál szépen visszaállít mindent (es nem kell a fenti fstab-os trukkozes), nem? csinálhatod, de akkor offline. Az offline alatt rescue boot-ot ertesz (pl.)? -- sZs _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: dist-upgrade + lvm snapshot
SZABO Zsolt sz...@mm.bme.hu writes: On Tue, 5 Jun 2012, Ferenc Wagner wrote: SZABO Zsolt sz...@mm.bme.hu writes: A cel az lenne, hogy pl. egy dist-upgrade-be ugy lehessen belevagni, hogy ha valami nagyon nem jonne ossze, akkor egyszeruen vissza lehessen allni az eredeti rendszerre. Ehhez 1. letre kellene hozni a modositas altal erintett kotetek snapshotjat: lvcreate -n ${orig_name}_snapshot -s -L $affected_size $vg (Ezt ugye lecsatolt vagy befagyasztott fájlrendszerek alatt csinálod.) Hat, tudom, hogy igy a biztos... :-) (persze a fonti parancssorban a $vg LV-t jelent...: lvcreate -n ${orig_lv}_snapshot -s -L $affected_size ${orig_lv} vagy ilyesmi, ha jol gondolom) Igen. Azt nem egeszen latom, hogy pl. a fentivel ekvivalens-e a kov.: lvcreate -n ${orig_lv}_snapshot -L $affected_size ${orig_lv} lvconvert -s ${orig_lv} ${orig_lv}_snapshot Nem tudom, de arra tippelek, hogy igen. dmsetup-pal ellenőrizheted. 2. Modositas pl. dist-upgrade 3. ha OK, akkor: lvremove *_snapshot ha nem: ??? + reboot (v. reboot + ??? backup script?) Szoval itt a vegen kicsit elakadtam: hogy tudom visszacsinalni, ha valami nem tetszene? Vagy átállsz a snapshotok használatára (az fstabban és esetleg egyebütt), amíg megjavítod a frissített rendszert, vagy visszaírod a Ezt akkor kb. igy kellene csinalni, ugye: cd /etc cp -a fstab fstab.bak sed -i -r 's:(root|var|usr|tmp):\1_snapshot:' fstab # felteve hogy az erintett lv-k root,var, stb. nevuek) ... es ezutan letrehozni a snapshot-okat (a befagyasztott filerendszerekhez) majd mv fstab.bak fstab es upgrade, stb. es ha nem tetszik az eredmeny, akkor boot parameternek a root_snapshot-ot megadni root particionak Igen. snapshotokat az lvconvert --merge paranccsal (amit nem biztos, hogy a régi rendszered támogat). Végső esetben a visszaírást kézzel is A támogatottság nem az lvm1 v. lvm2-n múlik? Amúgy LVM2 van... Nem, az LVM2 is csak bizonyos verzió fölött támogatja. Debian Lennyben még nem. Ekkor ha kiadom a mountolt lv-kre a -merge-et, akkor a következő boot-nál szépen visszaállít mindent (es nem kell a fenti fstab-os trukkozes), nem? Igen. csinálhatod, de akkor offline. Az offline alatt rescue boot-ot ertesz (pl.)? Igen. -- Feri. _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux