Mam lehky problemek a nevim zatim jak to vyresit.
Rekneme, ze mam text takoveto podoby:
"to chci","tohle, nechci","tohle taky chci"
"to chci",,"tohle taky chci"
Jak vidite, jsou dva druhy radku, potreboval bych ve finale dostat vedle sebe pouze vyrazy
"to chci","tohle taky chci"
Kdyz bych pouzil awk na oddelovac bud '"' nebo "," pak me to nebude fungovat, protoze tam neni nejaka pravidelnost v pouziti oddelovacu.
Jednoduche slovni zadani zni, ze potrebuji odstranit to co je mezi druhou dvojici carek s tim, ze pokud tam je v uvozovkach neco i s carakami v textu, tak to musi taky pryc.
Nema nekdo nejaky sikovny trik jak na to?
V sedu to neumím, ale měl bych řešení v perlu.
Řekněme, že vaše chtíče ;) jsou uloženy v souboru
a.txt. Pak je (pak je snad :) řešením:
cat a.txt |perl -pe 's/"[^"]+\,[^"]+"//g;s/\,+/\,/g'
což vypíše:
"to chci","tohle taky chci"
"to chci","tohle taky chci"
a to je snad ;) to co jste chtěl...
Pokud jste si při hodinách regulárních výrazů
četl comics nebo Playboye ;) mrkněte na články
o regex zde na rootu.
No jako samouk jsem to zatim do teto urovne nedohral.
Ten vyraz dela temer co potrebuji, ale v realu je tam jeste jedna zaludnost, ze jsou tam i radky typu:
"to chci","tohle nechci","tohle taky chci"
cili radky bez carky v te druhe casti. Na to je zatim ten doporuceny postup kratky, ale zkusim mu domluvit.
Diky za hint.
Co třeba
s/,\("[^"]*nechci[^"]*"\)*,/,/
Pokud se vzor nechci neobjeví v tom, co chcete ;-),
tak by to mělo fachat.
"chci"," tohle nechci","chci"
"chci penize",,"ja chci taky!"
"chci "," ne, ne, nechci, ,","a zase jo"
výsledek
"chci","chci"
"chci penize","ja chci taky!"
"chci ","a zase jo"