OT: grep
Jan Pechanec
jp at devnull.cz
Fri Jul 27 11:34:50 CEST 2012
On Fri, 27 Jul 2012, Dan Lukes wrote:
>> grep -e '\`' soubor
>>
>> Vyraz se shoduje s jakymkoliv radkem. Podle me by se mel shodovat
>> pouze s radky, ve kterych se vyskytuje alespon jeden znak `.
<...>
>
> Nevim co pro grep znamena escapovany zpetny apostrof. Ma takovou teorii, ze nic
> a protoze nevi co je to za znak, tak ho uplne vynecha. No a prazdnej retezec
> matchne kazdej radek.
cau Dane, podle me to je chyba. Backslash potlacuje specialni vyznam
znaku za nim, tady neni co potlacit, takze by tam mel nechat ten zpetny
apostrof. Podle teorie, co rikas, by mel nasledujici prikaz vypsat vsechno:
grep '\X' /etc/passwd
coz se rozhodne nestane a grep najde radky, kde je X, jak by clovek
ocekaval. Co se divam, tak na Solarisu grep na '\`' proste hleda zpetny
apostrofy.
mozna to jsou nejaky historicky duvody BSD implementace, ale podle
me to je obycejnej bug.
> Coz nelze obema programum vycitat - \` konstrukt je v podstate "chyba" a neda
ja si nemyslim, ze dany konstrukt je chyba. Kdyz si nejsi jisty,
jestli nektery znak nema specialni vyznam, tak dej escape. Takhle se chova i
shell a opet mi to prijde zcela logicky:
$ echo \a
a
vim, ze nekde to je naopak, v nejakych regularnich vyrazech naopak
musis dat \( pro grouping, jinak ( reprezentuje normalni zavorku. Ale to mi
prijde jeste horsi.
p.
--
Jan Pechanec <jp (at) devnull (dot) cz>
http://www.devnull.cz
More information about the Users-l
mailing list