Yıldız işareti yalnızca bir tekrar operatörüdür , ancak neyi tekrarladığınızı ona söylemeniz gerekir. /*abc*/
ab ve sıfır veya daha fazla c içeren bir dizeyle eşleşir (çünkü ikinci * c'nin üzerindedir; birincisi anlamsızdır çünkü tekrar edecek bir şey yoktur). Herhangi bir şeyi eşleştirmek istiyorsanız, şunu söylemelisiniz .*
- nokta herhangi bir karakter anlamına gelir ( belirli kurallar dahilinde ). Sadece abc ile eşleşmek istiyorsanız, diyebilirsiniz grep 'abc' myFile
. Daha karmaşık eşleşmeniz için .*
- kullanmanız gerekir - grep 'abc.*def' myFile
abc ve ardından def içeren bir dizeyi isteğe bağlı olarak arada bir şeyle eşleştirir.
Bir yoruma göre güncelleme:
*
Normal ifadede, konsoldaki * ile tam olarak aynı değildir. Konsolda *, bir glob yapısının parçasıdır ve yalnızca bir joker karakter görevi görür (örneğin ls *.log
, .log ile biten tüm dosyaları listeler). Ancak, normal ifadelerde * bir değiştiricidir, yani yalnızca kendisinden önceki karakter veya grup için geçerli olduğu anlamına gelir. Normal ifadelerde * 'nin joker karakter olarak davranmasını istiyorsanız .*
, daha önce belirtildiği gibi kullanmanız gerekir - nokta bir joker karakterdir ve noktayı değiştirirken yıldız, bir veya daha fazla nokta bulmak anlamına gelir; yani. herhangi bir karakterden bir veya daha fazlasını bulun.