grep -F -r '0.49' *
považuje 0,49 za "pevný" řetězec namísto regulárního výrazu. Tím je .
ztratí svůj zvláštní význam.
grep
používá regulární výrazy; .
znamená "jakýkoli znak" v regulárním výrazu. Pokud chcete doslovný řetězec, použijte grep -F
, fgrep
, nebo escapujte .
na \.
.
Nezapomeňte svůj řetězec zabalit do dvojitých uvozovek. Nebo byste měli použít \\.
Váš příkaz by tedy musel být:
grep -r "0\.49" *
nebo
grep -r 0\\.49 *
nebo
grep -Fr 0.49 *
Musíte kódovat .
jako "0\.49"
.
A .
je metaznak regulárního výrazu, který odpovídá libovolnému znaku (kromě nového řádku). Chcete-li odpovídat doslovnému období, musíte mu uniknout.