2012-10-01 6 views
7

egrepを使ってrで始まりgで終わる行を見つけて表示する必要があります。egrep行がrで始まりgで終わる

私は

egrep -e "^r*g$" testfile.txt 

を持っていますが、私が間違って何をやっている、私に何も結果を与えていないですか?

+4

変更「^ R * G $」に「^ R * G $」 – iruvar

+0

あなたは、二重引用符で囲まれた文字列の末尾に '$'を配置することができますが、 ''^r。* g $ '' –

+0

あなたは正規表現を、シェルが使うファイルマッチングパターン(" globbing ")と混同しています。正規表現では、 '.'は1文字にマッチし、'。* 'は0個以上の文字にマッチします。ファイルマッチングパターンでは '?'と '*'で、 '.'は特殊ではありません。ファイルマッチングパターンはあまり強力ではありませんが、ファイルを選択するという限られた目的のために便利です。 –

答えて

10

.を添加することは、基本的に意味

egrep -e "^r.*g$" 

を動作する必要があり:Rで始まるすべて、ゼロまたはそれ以上のものが続き、その後、Gで終了されます。

はそれが

r fsgdfs gfsdg 
rfoo g 
rg 
0

*rに一致している、いない "中間に何かを" 返す

r fsgdfs gfsdg 
fooo bar 
rfoo g 
fdsqfdsq 

rg 

に対してテスト。 .*にそれを更新し、あなたは結果が表示されます。

egrep -e "^r.*g$" testfile.txt 
関連する問題