txt filebol sorok kivalogatasa

2012-06-05 bef zés János Korponai
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

2012-06-05 bef zés Pápai Balázs
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

2012-06-05 bef zés Pirity Tamas Gabor
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

2012-06-05 bef zés Kiss Gabor

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

2012-06-05 bef zés Attila Rajmund Nohl
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

2012-06-05 bef zés Gabor HALASZ
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

2012-06-05 bef zés Kiss Gabor

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

2012-06-05 bef zés Kiss Gabor

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 bef zés Kovács Attila
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 bef zés Szládovics Péter
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

2012-06-05 bef zés Ferenc Wagner
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

2012-06-05 bef zés SZABO Zsolt
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

2012-06-05 bef zés Ferenc Wagner
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