Portál AbcLinuxu, 25. dubna 2024 08:57


Dotaz: príkaz na vypísanie prvého slova n-tého riadku

15.1.2004 14:25 Peter S.
príkaz na vypísanie prvého slova n-tého riadku
Přečteno: 102×
Odpovědět | Admin
robim taký malý bash skript, je v ňom cyklus, v ktorom by som potreboval aby mi písalo vždy prvé slovo z n-tého riadku. V krajnom prípade by som si mohol nejako upraviť samotný txt súbor, kde by som vymazal všetko okrem tých prvých slov (aj keď momentálne neviem ako), a potom by mi stačil príkaz na vypísanie celého n-tého riadku (logicky :) ) - čo tiež neviem ako.

chcel by som aby to bolo bash-ovými príkazmi, aby som mal šancu to pochopiť a naučiť sa.

Vopred vďaka
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.1.2004 14:39 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše príkaz na vypísanie prvého slova n-tého riadku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vypsat první slovo z n-tého řádku není problém např. sed -e "42{s/^ *//;s/ .*//};t;d" soubor kde 42 nahraď $n. Vymazat všechno kromě prvního slova lze pro změnu např. cut -d' ' -f1 soubor Ale pokud to děláš v cyklu, tak je to IMHO špatný nápad, protože se pokaždé musí zpracovat celý soubor, takže to prostě čti po řádcích { while read; do echo "${REPLY%% *}"; done } <soubor kde to "${REPLY%% *}" vždycky je první slovo z řádku, takže si s ním dělej co chceš (namísto echo). A vůbec nejlepší možná je nepsat to v shellu...
15.1.2004 16:14 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše príkaz na vypísanie prvého slova n-tého riadku
Odpovědět | | Sbalit | Link | Blokovat | Admin
awk:
#!/usr/bin/awk -f
{
if (NF==riadok)
     print substr($0,1,1)
}
pouzitie ./skript.awk -v riadok=1024 subor.txt
shell:
#!/bin/sh
head -${riadok} $1 $2 | tail -1 | cut -c6
pouzitie ./script.ksh 1024 subor.txt
kazde ma svoje pre a proti. viac man awk
man head
man tail
man cut ;-)

IMHO robit toto v cykle, mal som ponuku na nejaku blbinu ze prechadzat 5gb subor 100x, ale zmietol som to zo stola a potom to urobil nejaky programator v c

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.