[ leka @ 03.04.2002. 10:40 ] @
SED-eri pomagajte, treba mi sed komanda koja od Code: "pravi" 'var = fun("trt", "mrt");' Code: 'var = fun("%C9trt%O", "%C9mrt%O");' |
[ leka @ 03.04.2002. 10:40 ] @
[ leka @ 03.04.2002. 10:59 ] @
Zahvaljujuci Dragishi Duricu, vlasniku LINUKS.org-a i RSTEL-a, problem je reshen! :)
Evo kako je tekao razgovor: Code: LekaMan(10:47 AM) : [dejan@gnu dejan]$ echo 'var = fun("trt", "mrt");' | sed -e 's/"\(.*\)"/"%C9\1%O"/' var = fun("%C9trt", "mrt%O"); LekaMan(10:47 AM) : ovo ne radi posao meni LekaMan(10:48 AM) : fora je... juce sam se zajebavo dva sata... on uvek navodnike zameni sa onim sto mu kazem da menja... Jomu(10:49 AM) : var = fun("%C9trt", "mrt%O"); da ovo, longest match fol ?ek Jomu(10:50 AM) : echo 'var = fun("trt", "mrt");' | sed -e 's/"\([^"]*\)"/"%C9\1%O"/g' var = fun("%C9trt%O", "%C9mrt%O"); evo sad radi :) [ leka @ 03.04.2002. 11:19 ] @
E nakon svega ovoga Dragisha ukazuje na jedan dodatni problem:
Code: frodo:dragisha/pts/14: ~# echo 'var leka = "m3 \"zealot\"";' | sed -e 's/"\([^"]*\)"/"%C9\1%O"/g' var leka = "%C9m3 \%O"zealot\"%C9%O"; vidi?? :) (Kanal #OS na BalcanNET-u) [ Gojko Vujovic @ 03.04.2002. 17:14 ] @
Nešto ovako možda:
Code: gojko@es:~$ echo 'var = fun("trt", "mrt");' | sed -e 's/[^]"([^"]*)(\"[^"]*\")*([^"]*)"/"%C9123%O"/g' var = fun"%C9trt%O","%C9mrt%O"); gojko@es:~$ echo 'var leka = "m3 "zealot" test";' | sed -e 's/[^]"([^"]*)(\"[^"]*\")*([^"]*)"/"%C9123%O"/g' var leka ="%C9m3 "zealot" test%O"; Podržava maximalno jedan par escapeovanih quoteova unutar pravih navodnika. Može se preraditi i da radi sa više njih, ako ti baš treba, reci.. [ leka @ 03.04.2002. 18:38 ] @
treba mi jedinstveno resenje koje radi i u jednom i u drugom slucaju!
[ Gojko Vujovic @ 05.04.2002. 11:58 ] @
Mogao si prvo da pogledaš moju poruku, uvideo bi da sam isti regexp /[^]"([^"]*)(\"[^"]*\")*([^"]*)"/"%C9123%O"/ koristio u oba slučaja i koliko sam ja shvatio tvoje pitanje, ovako se dobijaju traženi rezultati:
var = fun("trt", "mrt"); postaje var = fun"%C9trt%O","%C9mrt%O"); var leka = "m3 "zealot" test"; postaje var leka ="%C9m3 "zealot" test%O";. [ leka @ 06.04.2002. 03:55 ] @
Yeah, Gojko faco u pravu si - hvala na pomoci! :)
Videces na IRC-u za sta mi treba ovo! :) [ Gojko Vujovic @ 06.04.2002. 15:28 ] @
Sad sam tek primetio da ovaj poslednji guta prvu zagradu "(" posle 'fun'.
Evo ispravke: Code: gojko@es:~$ echo 'var = fun("trt", "mrt"); var leka = "m3 \"zealot\" test"; ' | sed -e 's/\([^\]"\)\([^"]*\)\(\\"[^"]*\\"\)*\([^"]*\)"/\1%C9\2\3\4%O"/g' var = fun("%C9trt%O", "%C9mrt%O"); var leka = "%C9m3 \"zealot\" test%O"; Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|