以下の例のように、*
でki
を検索しましたが、最初の3行が返されているはずです。一致するki
がない場合に最後の行が返される理由はわかりません。
$ grep "ki*" trial_file.txt
kartik,27,Bangalore,Karnataka
pulkit,25,Bangalore,Karnataka
kit,28,Bangalore,Karnataka
kush,24,Pennsylvania,Philadelphia
ここではシェルスタイルのワイルドカードを期待していると思いますが、得られるのは正規表現です。 ki*
を検索するとき、リテラルk
の後に0個以上のi
が続くことを求めています。
最初の行にも「ki」は含まれていません。
これを正しく行う方法は、正確に一致させようとしているものによって異なります。
上記でコメントしたように、grep "ki"
が必要な場合もありますが、「ki」で始まる行のみを一致させる場合は、grep "^ki"
が必要です。^
は行の始まりを示します。