Portál AbcLinuxu, 12. května 2025 10:18

Dotaz: Volání funkce podle obsahu řádku

21.3.2009 19:42 Martin | skóre: 1
Volání funkce podle obsahu řádku
Přečteno: 271×
Odpovědět | Admin
Mám takovej problém. Potřebuji volat funkci , která něco vypisuje (už je funkční) ale mám problém tu funkci potřebuji volat pouze pokud je na řádku posloupnost 123 a tu výpisem této funkce nahradit. Díky za odpovědi
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.3.2009 19:43 Martin | skóre: 1
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin
jo a ještě jeden pořadavek bylo by to úplně perfektní kdyby to bylo pomocí AWK (ta funkce je v BASH) a nebo pomocí SEDu
21.3.2009 21:08 deadmail
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
v awk-u mozme volat exportovane funkcie cez akciu system Nasledovny skript spusti funkciu ahoj pri kazdom riadku obsahujucom 123: #!/bin/bash
function ahoj () {
echo "Funkcia"
}
export -f ahoj
awk '/123/ {system("ahoj")}'
23.3.2009 21:47 Martin | skóre: 1
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
A ještě takovej blbej dotaz. Tohle je krásný ale zjistil jsem že mi to jede jenom na pracovním stroji jakmile to dám na server tak ani ťuk protože tam je freeBSD a ksh takže to nezná
export -f 
teda spíš to nezná jenom ten přepínč -f není teda nějaká náhrada co by se dala použít i tam jinak funkce v bash je perfekt.
kozzi avatar 23.3.2009 23:29 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
no tak na sever nahrej taky bash a je to
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
24.3.2009 14:19 Martin | skóre: 1
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
jo kdyby to šlo tak se neptám
kozzi avatar 24.3.2009 14:30 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
Tak to je potom blbe kdyz na ten server nemuzes nic nahrat :-D
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
24.3.2009 14:34 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
Tak preco tam chces pouzit bash funkciu?
21.3.2009 21:09 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak si tu funkci zavolejte dopředu a výstup si uložte do souboru vystup a v sedu lze pak udělat něco jako
sed -e '/123/r vystup'
I am always ready to learn although I do not always like to be taught. (W. Churchill)
21.3.2009 21:11 NN
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin

#!/bin/sh

s() { echo string

}

echo "0

123

789" | sed s/123/`s`/

exit 0

NN

21.3.2009 21:40 deadmail
Rozbalit Rozbalit vše Re: Volání funkce podle obsahu řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Predchadzajuce riesenia zavolaju tu funkciu vzdy (aj v pripade, ze sa 123 vobec v subore nevyskytuje) ...

Volat funciu iba v pripade vyskytu 123 sa da:
#!/bin/bash
function ahoj(){
        echo "fcia"
}
export -f ahoj
awk '/123/ {"ahoj"|getline riadok; sub(/123/, riadok); print}'
v kazdom riadku obsahujucom 123 nahradi prvu 123

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.