Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Využij akce až 80 % zdarma při nákupu e-learningu - více informací. Zároveň pouze tento týden sleva až 80 % na e-learning týkající se Swift

Diskuze: awk - sestavení programu

Aktivity
Avatar
Tereza Burbová:5.2.2019 10:25

Dobrý den, mám do v awku 3 příkazy:

-F[/.] {for(i=1;i<=NF;i++){if($i=="Hello"){print "#"$(i+1)}}}

BEGIN{flag=""} /end/{flag=1;next} !/end/ && /[a-zA-Z]+/{flag=""} flag{print $2}

BEGIN { CONVFMT="%0.17f" }
function t(n, s) {
s=index(n,".")
return (s? substr(n,1,s+4) : n)
}
/end/ || x==1 { if(x==1) print t($1-2400000),t(-2.5*log($2)/log(10)) ; x=1 }

Jak je spojit dohromady prosím?

Input:

gfkjl
dfjldfg
Hello/word
klji
c end
2.456924717385000084e+06 8.305102180161216529e+04 1.356000000000000050e+01
2.456924717654999811e+06 8.287982785722288827e+04 1.383000000000000007e+01

Požadovaný výstup:

#word
56924.7173 -12.2983
56924.7176 -12.2961

Moc děkuji

Zkusil jsem: Zkoušela jsem něco takového:

BEGIN { CONVFMT="%0.17f" }
-F[/.] {for(i=1;i<=NF;i++){if($i=="Hello"){print "#"$(i+1)}}}
function t(n, s) {
s=index(n,".")
return (s? substr(n,1,s+4) : n)
}
/end/ || x==1 {flag=""} /end/{flag=1;next} !/end/ && /[a-zA-Z]+/{flag=""} flag{ if(x==1) print t($1-2400000),t(-2.5*log($2)/log(10)) ; x=1 }

ale nefunguje to.

Chci docílit:
Chtěla bych na první řádek výstupního souboru napsat

-F[/.] {for(i=1;i<=NF;i++){if($i=="Hello"){print "#"$(i+1)}}}

Pak se přesunout na řádku pod slovem end

BEGIN{flag=""} /end/{flag=1;next} !/end/ && /[a-zA-Z]+/{flag=""} flag{print z dalšího}

a tam udělat

BEGIN { CONVFMT="%0.17f" }
function t(n, s) {
s=index(n,".")
return (s? substr(n,1,s+4) : n)
}
/end/ || x==1 { if(x==1) print t($1-2400000),t(-2.5*log($2)/log(10)) ; x=1 }
 
Odpovědět
5.2.2019 10:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.