Myslím, že se v článku objevily dvě male chybky:
Pod nadpisem Jemnosti adresování má být IMHO:
Jak funguje rozsah /RE1/,/RE2/příkaz?
(navíc čárka a lomítko)
A nadpis o jednoduchých a dvojitých závorkách má být o uvozovkách.
Jsem myslím první v diskusi, tak to možná stihne autor opravit než to budou číst další :-)
Jinak článek je pěkný a ukázané skripty člověka nutí trochu přemýšlet (my, co používáme PERL a nemáme sedouvskou prax...), to je určitě fajn.
To je divné...
Na RH7 i RH9 funguje
ls |tail +4
v pohodě.
Je tedy pravda,že verze GNU textutils je na RH poněkud zastaralá (2.0.11,resp. 2.0.21). Ovšem
v aktualní verzi GNU textutils (2.1) v dokumentaci
běžně argument +N používají:
>If any option-argument is a number N starting with
>a `+', `tail' begins printing with the Nth item
>from the start of each file, instead of from the
>end.
Protože se mi nechce kompiloval aktualní verzi
GNU textutils, spokojím se s konstatováním, že
máte buď jinou distribuci textutils (zda lepší
si rozhodněte sám ;) anebo členové GNU zapomněli
aktualizovat dokumentaci.
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"
Trochu nechapu zadani, ale pokud jde o vynechani pouze druheho "sloupce" mezi carkami, ktery tam byt nemusi, tak by melo fungovat toto:
sed 's/",.*,"/","/'
Problem by bylo pouze pokud by texty v uvozovkach zacinaly nebo koncily carkou, ale jestli to jsou nejake rozumne vety, tak to asi nemuze nastat.