Bilgisayarım macOS 10.12.3 çalıştırıyor ve grep
2.5.1-FreeBSD sürümüyle sistemde yüklü yardımcı programı kullanıyorum .
Bunlar çeşitli normal ifadeleri test ederken elde ettiğim çıktılar:
Ancak bunları GNU grep (sürüm 2.25) kullanarak çalıştırırsam aşağıdakileri elde ederim:
GNU'nun grep'i bana doğru görünüyor ve BSD'ler yanlış, değil mi? Neden farklılar? Normal ifade satırın başlangıcına uyması gerektiğini belirttiğinde BSD'nin grep'inin neden "a" ile eşleştiğini anlamıyorum.
2
İlk davranışı bir hata olarak bildirmekten çekinmeyin.
—
Satō Katsura
Bunun
—
Stéphane Chazelas
echo 'bababa' | grep -E '^(a|b)'
kırmızı olduğunu göreceksiniz . Ve aynı problemle karşılaşacaksınız -o
. Sanırım, grep
birden fazla maç arar, ancak ikinci maç ve üstü için, anana
REG_NOTBOL bayrağını geçmeden önceki zamanla eşleşen şeyin sağında olana ( örneğin, davanızda ikinci kez) regexp uygular. Ayrıca bakınızecho banana | grep -Eo '^ban|^ana$'
@JdeBP, OS X'imde,
—
ilkkachu
grep
kendisini grep (BSD grep) 2.5.1-FreeBSD
yalnızca "GNU sürümleriyle uyumluluk için sağlanan uzun seçeneklerden" bahsederek GNU'ya atıfta bulunan man sayfasıyla tanımlamaktadır . Ayrıca, telif hakkı bildirimi veya GPL'den (veya FSF'den) bahsedilmez. GNU util ile geçmişi varsa, bunu söylemek zor.
Bunun nasıl yanıltıcı olduğunu gösteriyoruz . (-:
—
JdeBP
grep
Bu kadar çok insan düşünme olarak doğru tanımlar olduğunu olduğunu Decade Ay'ın cevap ele olmasıdır grep (GNU grep) 2.5.1-FreeBSD
(böcek tartışmada görülebileceği gibi), bir FSF telif hakkı bildirimi vardır ve kesinlikle GNU grep
. Ne çağrıları FreeBSD bsdgrep
neyi OpenBSD olduğunu aramaları grep
ve BSD olan grep
hiçbir ile --color
. o kadar neyi tanımlar olduğunu FreeBSD varyantı outwith seçeneği grep (BSD grep) 2.5.1-FreeBSD
ve ironik böcek tartışmada bir kişi olduğunu FreeBSD anahtarı önerilen budur grep
için.