Yanıtlar:
Açıklandığı gibi burada , örneğin, maçları arasındaki kelimeler:
Kelime sınırları olarak nitelendirilen üç farklı pozisyon vardır:
- Dizedeki ilk karakterden önce, ilk karakter bir kelime karakteriyse.
- Dizedeki son karakterden sonra, son karakter bir kelime karakteriyse.
- Dizede, biri sözcük karakteri diğeri de sözcük karakteri olmayan iki karakter arasında.
İşte bu vakaların her birine örnekler:
Dize foobariçin ilk durum eşleşir
foobar
^-----here
Dize foobariçin ikinci durum eşleşir
foobar
^--here
Dize foo bariçin üçüncü durum eşleşir
foo bar
^--here, because space is not a word character
Bir kelime karakteri olarak nitelendirilen şey, belirli düzenli ifade uygulamasına bağlıdır. Ancak her durumda, harfler ( [a-z]ve [A-Z]), sayılar ( [0-9]) ve _kelime karakterleri olarak kabul edilir.
Bu nedenle, ( \b[A-Z]+\b) gönderdiğin normal ifade, iki sözcük sınırı arasındaki ve yalnızca büyük harflerden oluşan en uzun dizeyi bulmak anlamına gelir. Örnekle açıklamak daha kolay olabilir:
echo "FOOBAR" | egrep '\b[A-Z]+\b' # Works
echo "FOO BAR" | egrep '\b[A-Z]+\b' # Works
echo "aFOOBARb" | egrep '\b[A-Z]+\b' # Does not work, we want capitals only
echo "12345" | egrep '\b[A-Za]+\b' # Does not work, no letters
echo "1FOOBAR2" | egrep '\b[A-Z]+\b' # Does not work, 1 and 2 are word chars
echo "_FOOBAR_" | egrep '\b[A-Z]+\b' # Does not work, _ is a word char
echo "#FOOBAR$" | egrep '\b[A-Z]+\b' # Works, # and $ are not word chars
egrep(ne de /usr/xpg4/bin/egrep) \bbu şekilde davranmadığını unutmayın . Örneğin, echo "FOOBAR" | egrep '\b[A-Z]+\b'eşleşmez.
egrep '\b[A-Z]+\b' filename.sh
Bırakalım:
[A-Z]karakter sınıfındaki herhangi bir karakteri temsil eder
[ABCDEFGHIJKLMNOPQRSTUVWXYZ].[A-Z]+"Büyük harf", büyük harfli karakterlerin bir veya daha fazla oluşumunu temsil eder. : Örnek maçlar olacağını A, HELLO, IS, I, ELEPHANT, vb'\bINDIA\b': tam olarak kelimeyi BÜTÜN SÖZCÜK araması gibidir INDIA. Bu olur DEĞİL maç INDIANA. Böylece aynı prensibi uygulamak - '\b[A-Z]+\b'büyük harfle bir veya daha fazla harf içeren tüm kelimeleri arar.egrep '\b[A-Z]+\b' filename.sh, dosyada büyük harf olan bir veya daha fazla harfe sahip kelimeleri arar filename.sh.\b - tam bir kelime araması gibidir.
[azA-Z0-9_].egrep(1)Kullanımdaki düzenli ifadelerin kılavuzuna , belki de belgelerine bakın.