Yazarken
$ grep \$
sonra terminalde yazdığım her şey eşleşir ve terminalde yazdırılır. Nasıl \$
yorumlanıyor?
Yazarken
$ grep \$
sonra terminalde yazdığım her şey eşleşir ve terminalde yazdırılır. Nasıl \$
yorumlanıyor?
Yanıtlar:
Kabuk uğratmaktadır \$
gibi grep üzerine geçirilerek $
satır karakter sonunda,. Hattınızın bir sonu olduğu varsayılarak, eşleşecek :-)
$
Grep'teki bir gerçekle eşleşmek istiyorsanız , aşağıdakilerden birini kullanın:
grep \\\$
grep '\$'
İlkinde, kabuk verme \\
olarak \
ve \$
olarak yorumlamaktadır . İkincisinde, hiç yorumlamaz.$
\$
Neden \$
iki karakter dizisi yerine dolar işareti ile eşleştiğine ilişkin sorunuzla ilgili olarak, grep
bazı amaçlar için özel karakterler kullananlar gibi normal ifadeler . Bunlardan bazıları:
$ end of line
^ start of line
. any character
+ 1 or more of the preceeding pattern
* 0 or more of the preceeding pattern
{n,m} between n and m of the preceeding pattern
[x-y] any character between x and y (such as [0-9] for a digit).
diğerleri ile birlikte.
Normalde özel bir karakter olarak kabul edilen bir litre karakterini eşleştirmek istediğinizde grep
, normal karakter olarak davranması için karakterden kaçmanız gerekir .
ls \$
ve biz "ls: $: Böyle bir dosya ya da dizin" olsun görüyoruz, \ $ 'ın $' dan kaçtığını, \\ $ \ \ $ \ \ \ $ \\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\ \ \ \ \ \ \ \ \ \\>
Bu yorumlar kabuk önce programa parametre göndermeden önce çıkış sırasını genişleyen \$
bir çıkış sırası olarak ve tek bir bağımsız değişken geçer $
için grep
hattın sonuna eşleşir. Her satırın bir sonu olduğundan, herhangi bir satır eşleşmelidir :)
man grep
. o karar verildi $
bakılmaksızın çizgiler ile ayrılmış olup olmadığına, satırın sonuyla eşleşir \n
, \r
tamamen farklı, her ikisi ya da bir şey. Genel durumda, normal ifadeler yalnızca bir "çizgi" ile değil, herhangi bir dizeyle $
eşleşmek için kullanılabilir ve dizenin sonuyla eşleşmek için kullanılır.
Satır sonu metakarakter olarak yorumlanıyor. Gerçek bir dolar işareti ile eşleşmek istiyorsanız,
$ grep \\$
veya
$ grep '\$'
echo \$
ve sonraecho \\$