Vyborne. Pro lidi jako ja, kteri unix pouzivaji jen jako OS, jsou takoveto clanky neocenitelne. Preci jenom procitat celou dokumentaci syntaxe reg. vyrazu kvuli jednorazove akci neni to prave orechove.
Názory k článku
Regulární výrazy (5)
No proste skveleeeeeeeeee !!!!...
celé vláknoNo proste skveleeeeeeeeee !!!!!!!
Chybicka sa vludila
celé vláknoMam taky pocit, ze priklad :
Zmenit uživatel:heslo:UID:GID:vlastní jméno:...
na <A HREF="/~uživatel">vlastní jméno</A>
Kýženým substitučním příkazem, který to zařídí, je
s/\([^:]*\):\([^:]*:\)\{3\}\([^:]*\).*/<A HREF="/~\1">\3<\/A>/
Mam ale pocit, ze / za HREF=" je chapani systemom ako koniec regexpu, ze ktory sa ma nahradit, takze potom dalsie veci za tym mu uz nedavaju zmysel. Aspon co som to ja skusal, tak to vypisalo chybu. Ale urcite ide prikaz:
sed 's%\([^:]*\):\([^:]*:\)\{3\}\([^:]*\).*%<A HREF="/~\1">\3<\/A>%' /etc/passwd
kde sme / zamenili za %, co mozeme.
Prakticky priklad
celé vláknoAby nezustalo jen u palindromu a jinych zbytecnosti: prakticke uziti zapamatovani je ve zdrojovych textech s parovymi znackami, napr. u xml souboru lze vyhledat retezce <(.*)>.*<\/\1>, coz je vlastne tag s pocatecni a koncovou znackou vcetne obsahu tagu. Jinych prikladu parovych znacek se najdou jiste mraky.
nefunguje nahradenie
celé vláknoDobry den ak som pochopil spravne clanok tak vsetko co uzavriem medzi \( a ) by si mal grep zapamatat, pod cislami od \1 po \9 moja otazka teda znie ako si z regularneho vyrazu vytiahnem zapamatane casti \1 a \2
grep -o "^\([^:]*):[^:]*:\([^:]*)" /etc/passwd
skusal som nieco ako:
grep -o "^\([^:]*):[^:]*:\([^:]*)\1\2" /etc/passwd ale nic sa nestalo
proste chcem vytiahnut len meno a UID z /etc/passwd
Dakujem

