Nasıl düzenli kullanmak VEYA özellik listesi grep?
Tek bir dosyadan iki farklı maçlar için sonuçlar geri dönmek istiyorum.
grep "string1" my.file
doğru döndürür benim string1 tek örneği.dosya
grep "string2" my.file
doğru döndürür benim dize2 tek örneği.dosya
ama
grep "string1|string2" my.file
hiçbir şey döndürür
sözdizimi doğru olup olmadığını düzenli test uygulamaları, neden özellik listesi grep için çalışmıyor ?
CEVAP
Temel düzenli ifade kaçan olmadan |
karakterini kullanarak sadece |
edebi maç olacak. Eğer varsa örneğin, içeriği ile dosya
string1
string2
string1|string2
grep "string1|string2" my.file
kullanarak sadece son satırı maç olacak
$ grep "string1|string2" my.file
string1|string2
Değişim operatörü kullanmak için |
,:
Temel düzenli ifade (
grep
) kullanın ve düzenli ifade|
kaçış karakterigrep "string1\|string2" my.file
egrep
ya da Julian zaten his answer dediği gibigrep -E
ile genişletilmiş düzenli ifade kullanıngrep -E "string1|string2" my.file
Eğer eşleştirmek istediğiniz iki farklı desen varsa, onları da
-e
seçenekleri ayrı ayrı belirtin:grep -e "string1" -e "string2" my.file
grep
referans yararlı aşağıdaki bölümlerde bulabilirsiniz:
- Basic vs Extended Regular Expressions
- Açıklar, Matching Control,
-e
Nasıl css display none değişiklik veya...
Nasıl özellik listesi çalışan, Linux v...
Nasıl Git grep belirli bir kelime için...
Nasıl SERİ en az veya en fazla özellik...
Nasıl '' get komutu özellik ...