2013-10-03 20 views
5

VEYA bir i içeren tüm satırları listeleyen bir regex kodu arıyorum. Bu uğraş:Bir karakter veya başka bir regex?

grep -E '[(a|i)]{1}' testFile.txt 

ama bu bana içeren sözler verir veya i ve bir tr i ihtiva kelimeler. Sorun nedir?

+0

* (a | i) * – Darka

+3

Kayıt için, "a veya i (veya her ikisi)" ifadesi basitçe "[ai]" - grep "satırın herhangi bir yerinde bir eşleşme bildirir, böylece lider veya sondaki joker karakterlere ihtiyacınız olmaz. – tripleee

+0

Satırda başka bir şey yoksa, 'grep '^ [ai] $' file' veya' grep -Fx -e a -e i file'. – tripleee

cevap

2

Sen ulaşabilmeleri ile:.. Denersen Ne

grep -E "^[^ai]*(a|i){1}[^ai]*$" testFile.txt 
+0

içerir. Sorun şu ki, bu bana sessiz büyük bir siyah alan veriyor. – user2810895

+0

Düzgün çalışmadığında bir örnek verebilir misiniz? [Bu] (http://pastebin.com/Wkegi3Me) dosyasını test ettim, iyi çalışıyor –

+0

Dosya, Yunanca harfleri içeriyor. Normal ifade, örneğin: beta göstermelidir, ancak örneğin iota'yı göstermeyebilir, çünkü bu kelime hem bir i hem de bir – user2810895

0

sonra özel OR bu deneyin isterseniz: grep -E '^[^i]*a[^i]*$|^[^a]*i[^a]*$'

İlgili konular