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