[ Tigerheart @ 18.10.2002. 13:08 ] @
Da li postoji komanda koja bi mi u zavisnosti od parametra štampala na terminal n-tu liniju iz nekog fajla? Znači komanda bi glasila odštampaj mi npr. 4. liniju iz fajla...

[Ovu poruku je menjao random dana 19.10.2002. u 13:13 GMT]
[ random @ 18.10.2002. 14:17 ] @
Ne postoji komanda koja radi baš to što tražiš, ali lepota dizajna UNIXa je što se komande mogu kombinovati, što ti omogućava da uradiš praktično bilo šta, na mnogo načina. Na primer:

head -4 neki_fajl | tail -1

[Ovu poruku je menjao random dana 19.10.2002. u 13:15 GMT]
[ Gojko Vujovic @ 19.10.2002. 00:55 ] @
Ova komanda je 50% brža:

sed -n '4p' nohup.out

Testiraj pa ćeš videti :)
[ random @ 19.10.2002. 11:12 ] @
awk '{ if (FNR==4) print $0 }' < neki_fajl

I ova je odmah tu za njom.

Evo i varijacija na prvi predlog:

tail +4 neki_fajl | head -1

Ajmo dalje...
[ anatogen @ 19.10.2002. 11:49 ] @
E, hvala... ali imam jos jedno pitanjce:

Komanda je npr. ovakva: lspci | head -4 | tail -1 | awk "{print(\$$P)}"
S'tim da je predhodno izvrsena komanda P=2
Kada to uradim u shellu dobijem ono sto hocu ali kada se to izvrsi u
skripti ne dobijem isto tj. dobijam pid procesa sella ($$) kako to da izbegnem?
[ Gojko Vujovic @ 19.10.2002. 19:46 ] @
Nagađam sad pošto nemam vremena da probam, ali ili iskejpuj $$, možda oba ako si već sa prvim probao, ili probaj awk komandu u single quotes, ili ono sa ${},.. ma sve mi se pomesalo probacu kasnije pa cu ti reci :))
[ anatogen @ 20.10.2002. 00:01 ] @
E, stavarno smesno... ne mogu nikako da iskoristim promenljivu P u awku...
U shellu, ako je P=2, echo "{print(\$${P})}" ili echo "{print(\$$P)}" daje {print($2)}
ali u skripti #!/bin/bash ne daje kako treba ?!
Non stop radi tako sto zameni \$$P sa PIDem shella...

P.S. Znaci ja sam postavio pitanje koje je otvorilo tred (nisam imao svoju lozinku) pa ako je bitno
neka neko izmeni...
[ anatogen @ 20.10.2002. 00:50 ] @
Resio sam porblem...
U skripti sam koristio:
PROMENLJIVA=`lspci | head -4 | tail -1 | awk "{print(\$$P)}"`
i nije radilo, a kada se koristi
PROMENLJIVA=$(lspci | head -4 | tail -1 | awk "{print(\$$P)}")
radi...

Mada mi vise nije bitno, interesuje sto ovo prvo ne radi... U manu ne nadjoh nista...
[ random @ 20.10.2002. 02:27 ] @
A ako staviš obične navodnike umesto duplih?



[ anatogen @ 21.10.2002. 21:05 ] @
Ne, pod obicnim navodnicima ne dolazi do zamene izraza $P sa vrednoscu promenljive P, a meni treba da u zavisnosti od P dobijam rezultat...
[ Gojko Vujovic @ 22.10.2002. 08:53 ] @
Koja verzija bash-a ?
[ anatogen @ 22.10.2002. 22:16 ] @
GNU bash, version 2.05.0(1)-release (i386-suse-linux)
[ tOwk @ 25.10.2002. 03:45 ] @
Citat:
anatogen:
Mada mi vise nije bitno, interesuje sto ovo prvo ne radi... U manu ne nadjoh nista...


Nisi dobro čitao man :)

,,Backquotes'' (`) istovremeno izvršavaju komandu i vraćaju rezultat kao statičku vrednost. A kada navedeš kao $(...) onda ti smeštaš komandu koja će se izvršavati pri svakom vrednovanju izraza (,,evaluaciji'').

Igraj se malo sa PS1, i videćeš da ćeš ovo morati naučiti :)

Odnos je kao ,,\edef'' i ,,\def'' u TeX-u, ili ,,( ... )'' i ,,quote ( ... )'' u Lisp-u, gde je ( ... ) proizvoljna lista.

Pozdrav