Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut agrep'tir.
Program:
ADI
agrep - yaklaşık eşleşmeyle bir dosyada bir dize veya normal ifade arayın
yetenekleri
SİNOPSİS
Agrep [ -#cdehiklnpstvwxBDGIS ] model [ -F desen dosyası ] [ Dosya... ]
TANIM
Agrep girişi arar dosya adları (standart giriş varsayılandır, ancak aşağıdaki uyarıya bakın:
SINIRLAMALAR) aşağıdakilerden herhangi birini içeren dizeleri içeren kayıtlar için: kesinlikle or yaklaşık olarak eşle
Desen. Bir kayıt varsayılan olarak bir satırdır, ancak -d kullanılarak farklı şekilde tanımlanabilir.
seçeneği (aşağıya bakın). Normalde bulunan her kayıt standart çıktıya kopyalanır.
Yaklaşık eşleştirme, birkaç hata içeren deseni içeren kayıtları bulmayı sağlar
değiştirmeler, eklemeler ve silmeler dahil. Örneğin, Massechusets eşleşmeleri
Massachusetts'te iki hata var (bir ikame ve bir ekleme). Koşma Agrep -2
Massechusets foo, herhangi bir dizeyi içeren tüm satırları foo'dan en fazla 2 hatayla çıkarır.
Massechuset'ler.
Agrep keyfi joker karakterler, desen kümeleri ve
genel olarak, düzenli ifadeler. Aşağıdaki DESENLER'e bakın. Seçeneklerin çoğunu destekler
tarafından desteklenen grep family artı birkaç tane daha (ancak grep ile %100 uyumlu değildir).
agrep tarafından kullanılan algoritmalar hakkında daha fazla bilgi için Wu ve Manber, "Fast Text
Hatalarla Arama," Teknik rapor #91-11, Bilgisayar Bilimleri Bölümü,
Arizona Üniversitesi, Haziran 1991 (isimsiz ftp ile cs.arizona.edu adresinde
agrep/agrep.ps.1) ve Wu ve Manber, "Agrep -- A Fast Approximate Pattern Searching
Tool", USENIX Konferansı 1992 Ocak'ta görünmek için (adsız ftp tarafından şu adresten edinilebilir:
agrep/agrep.ps.2 içinde cs.arizona.edu).
Geri kalanında olduğu gibi grep aile, karakterler `$', '^', `*', `[', `]', `^', `|',
`(', `)', `!' ve '' kapsamına dahil edildiğinde beklenmedik sonuçlara neden olabilir. model, bunlar
karakterler de kabuk için anlamlıdır. Bu sorunlardan kaçınmak için her zaman
tüm model argümanını tek tırnak içine alın, yani 'pattern'. çift kullanmayın
tırnak (").
Ne zaman Agrep birden fazla girdi dosyasına uygulandığında dosyanın adı görüntülenir.
desenle eşleşen her satırdan önce. Dosya adı şu durumlarda görüntülenmez:
tek bir dosyayı işliyor, bu nedenle dosya adının gerçekten görünmesini istiyorsanız, / Dev / null as
listede ikinci bir dosya.
SEÇENEKLER
-# # maksimum hata sayısını belirten negatif olmayan bir tamsayıdır (en fazla 8)
yaklaşık eşleşmelerin bulunmasına izin verilir (varsayılan olarak sıfırdır). Genel olarak, her
ekleme, silme veya değiştirme tek bir hata olarak sayılır. ayarlamak mümkündür
ekleme, silme ve ikamelerin göreli maliyeti (bkz. -I -D ve -S)
seçenekler).
-c Yalnızca eşleşen kayıtların sayısını görüntüleyin.
-d 'sınırlamak'
Tanımlama sınırlamak iki kayıt arasında ayırıcı olmak. Varsayılan değer '$',
yani bir kayıt varsayılan olarak bir satırdır. sınırlamak en fazla 8 boyutunda bir dize olabilir
(muhtemelen ^ ve $ kullanımıyla), ancak normal bir ifade değil. ikisi arasındaki metin
sınırlamak'ler, ilkinden önce sınırlamak, ve sondan sonra sınırlamak biri olarak kabul edilir
kayıt. Örneğin, -d '$$' paragrafları kayıtlar olarak tanımlar ve -d '^From' tanımlar
posta mesajları kayıt olarak. Agrep her kaydı ayrı ayrı eşleştirir. Bu seçenek
şu anda normal ifadelerle çalışmıyor.
-e model
Basit olarak aynı model argüman, ancak yararlı olduğunda model ` ile başlar-'.
-f desen dosyası
desen dosyası bir dizi (basit) desen içerir. Çıktı tüm satırlardır
içindeki desenlerden en az birini eşleştirin desen dosyası. Şu anda -f seçeneği çalışıyor
yalnızca tam eşleşme ve basit desenler için (herhangi bir meta sembol,
normal karakter); yalnızca -c, -h, -i, -l, -s, -v, -w ve -x ile uyumludur
seçenekler. boyut sınırları için SINIRLAMALAR'a bakın.
-h Dosya adlarını gösterme.
-i Büyük/küçük harfe duyarsız arama — örneğin, "A" ve "a" eşdeğer olarak kabul edilir.
-k Desendeki hiçbir sembol meta karakter olarak değerlendirilmez. Örneğin, agrep -k
'a(b|c)*d' foo, a(b|c)*d'nin foo içindeki oluşumlarını bulurken agrep
'a(b|c)*d' foo, foo'da normal ifadeyle eşleşen alt dizeleri bulur
'a(b|c)*d'.
-l Yalnızca eşleşme içeren dosyaları listeleyin. Bu seçenek, arama yapmak için kullanışlıdır.
belirli bir desen içeren dosyalar. Örneğin, " agrep -l 'harika' * "
geçerli dizinde sözcüğü içeren bu dosyaların adlarını listeleyin
'müthiş'.
-n Yazdırılan her satırın önüne dosyadaki kayıt numarası eklenir.
-p Modelin bir üst sırasını içeren metindeki kayıtları bulun. Örneğin,
Agrep -p DCS foo irade maç "Departman of Bilgisayar Bilim."
-s Sessiz çalışın, yani hata mesajları dışında hiçbir şey göstermeyin. Bu işe yarar
hata durumunu kontrol etme.
-t sonundan başlayarak kaydın çıktısını alın sınırlamak sonrakine (ve dahil) deli.
Bu, şu durumlarda yararlıdır: sınırlamak kaydın sonunda gelmelidir.
-v Ters mod — yalnızca şu kayıtları görüntüleyin: do değil deseni içerir.
-w Deseni kelime olarak arayın - yani alfasayısal olmayan karakterlerle çevrili.
alfanümerik olmayan , eğer mülteci statüleri sona erdirilmemişse Amerika'ya geldikten bir yıl sonra maçı çevreleyen; hata olarak sayılamazlar.
Örneğin, Agrep -w -1 araba arabalarla eşleşir, ancak karakterlerle eşleşmez.
-x Desen tüm çizgiyle eşleşmelidir.
-y -B seçeneği ile kullanılır. -y açık olduğunda, agrep her zaman en iyi eşleşmeleri verir
bir ipucu vermeden.
-B En iyi maç modu. -B belirtildiğinde ve tam eşleşme bulunmadığında, agrep
en yakın eşleşmelere kadar aramaya devam edin (yani, en az sayıda
hatalar) bulunur, bu noktada aşağıdaki mesaj gösterilecektir: "en iyi
maç x hatası içeriyor, y eşleşme var, çıktı alınsın mı? (y/n)" En iyi eşleşme
modu standart giriş için desteklenmez, örn. boru hattı girişi. -#, -c,
veya -l seçenekleri belirtilir, -B seçeneği yoksayılır. Genel olarak, -B olabilir
-#'dan daha yavaş, ama çok fazla değil.
-Dk Bir silmenin maliyetini şuna ayarlayın: k (k pozitif bir tamsayıdır). Bu seçenek
şu anda normal ifadelerle çalışıyor.
-G Bir eşleşme içeren dosyaların çıktısını alın.
-Ik Bir eklemenin maliyetini şuna ayarlayın: k (k pozitif bir tamsayıdır). Bu seçenek
şu anda normal ifadelerle çalışıyor.
-Sk Bir ikame maliyetini şuna ayarlayın: k (k pozitif bir tamsayıdır). Bu seçenek
şu anda normal ifadelerle çalışmıyor.
DESENLER
Agrep basit dizeler, sınıflı dizeler dahil olmak üzere çok çeşitli desenleri destekler
karakterler, diziler, joker karakterler ve normal ifadeler.
Dizeler
satırın başlangıcı için özel semboller `^' dahil olmak üzere herhangi bir karakter dizisi
ve satır sonu için `$'. Yukarıda listelenen özel karakterler ( `$', '^', `*', `[',
`^', `|', `(', `)', `!' ve 'olacaklarsa, ' ' den önce '\' gelmelidir.
normal karakterler olarak eşleştirilir. Örneğin, \^abc\\ dizeye karşılık gelir
^abc\, oysa ^abc satırın başındaki abc dizesine karşılık gelir.
Sınıflar of karakterler
[] içindeki karakterlerin listesi (sırasıyla) aşağıdaki herhangi bir karaktere karşılık gelir.
liste. Örneğin, [a-ho-z], a ile h arasındaki veya o ile z arasındaki herhangi bir karakterdir.
[] içindeki `^' sembolü listeyi tamamlar. Örneğin, [^in] herhangi birini belirtir
'i' ile 'n' arasındaki karakterler hariç karakter kümesindeki karakter. '^' sembolü böylece
iki anlamı vardır, ancak bu egrep ile tutarlıdır. `.' sembolü (umurumda değil)
herhangi bir sembolü temsil eder (yeni satır sembolü hariç).
Boole operasyonlar
Agrep bir 've' işlemini destekler ';' ve bir 'veya' işlemi ',', ancak bir
ikisinin kombinasyonu. Örneğin, 'fast;network' tüm kayıtları arar
her iki kelimeyi de içeren
Vahşi kartları
'#' sembolü joker karakteri belirtmek için kullanılır. # sıfır veya herhangi bir sayıda eşleşir
keyfi karakterler. Örneğin, ex#e örnekle eşleşir. # sembolü
egrep'te .* ile eşdeğerdir. Aslında .* da işe yarayacaktır çünkü geçerli bir
normal ifade (aşağıya bakın), ancak bu gerçek bir normal ifadenin parçası olmadığı sürece
ifadesi, # daha hızlı çalışacaktır.
Kombinasyon of kesin ve yaklaşık uygun
köşeli parantez <> içindeki herhangi bir desen, eşleşme olsa bile metinle tam olarak eşleşmelidir.
hatalarla birliktedir. Örneğin, ics, matematiksel olarak tek bir hatayla eşleşiyor
(son s'yi a ile değiştirerek), ancak matematik matematiksel hayır eşleşmiyor
Kaç hataya izin verdiğimiz önemli.
Düzenli ifade
içindeki düzenli ifadelerin sözdizimi Agrep genel olarak bunun için aynıdır
yumurta. Birleştirme işlemi `|', Kleene kapanış `*' ve parantezler () hepsi
desteklenir. Şu anda '+' desteklenmiyor. Normal ifadeler şu anda
yaklaşık 30 karakterle sınırlıdır (genellikle meta karakterler hariç). Biraz
seçenekler (-d, -w, -f, -t, -x, -D, -I, -S) şu anda normal ile çalışmıyor
ifade. '*' kullanan normal ifadeler için maksimum hata sayısı veya
'|' 4'tür.
ÖRNEKLER
agrep -2 -c ABCDEFG foo
foo dosyasındaki ABCDEFG içeren satırların sayısını iki hata içinde verir.
agrep -1 -D2 -S2 'ABCD#YZ' foo
ABCD'yi içeren satırları, ardından, keyfi bir mesafe içinde, YZ ile,
bir ek eklemeye kadar (-D2 ve -S2 de silme ve değiştirme yapar
"masraflı").
agrep -5 -p abcdefghij /yol/to/sözlük/kelimeler
ilk 5 harfinden en az 10'ini içeren tüm kelimelerin listesini çıkarır.
alfabe in sipariş. (Deneyin: akademi ile başlayan ve ile biten herhangi bir liste
kutsala saygısızlık bir şey ifade ediyor olmalı!)
agrep -1 'abc[0-9](de|fg)*[xz]' foo
ile başlayan dizeyi içeren satırları bir hataya kadar çıktılar.
abc ve ardından bir basamak, ardından de veya fg'nin sıfır veya daha fazla tekrarı,
ardından x, y veya z gelir.
agrep -d '^Kimden' 'arıza;internet' mbox'ı
tüm posta mesajlarının çıktısını verir ('^Kimden' kalıbı bir postadaki posta mesajlarını ayırır
dosyası) 'arıza' ve 'internet' anahtar kelimelerini içerir.
agrep -d '$$' -1' 'foo
yerinde bir hata ile word1 ve ardından word2 içeren tüm paragrafları bulur
boşluktan. Özellikle, eğer kelime1 bir satırdaki son kelimeyse ve kelime2 ise
sonraki satırdaki ilk kelime, ardından boşluk yeni satır sembolü ile değiştirilecektir
ve eşleşecek. Bu nedenle, bu, yeni bir satırla ayrılmanın üstesinden gelmenin bir yoludur. Not
-d '$$' (veya birden fazla satıra yayılan başka bir sınırlayıcı) gereklidir,
çünkü aksi takdirde agrep bir seferde yalnızca bir satır arar.
agrep '^agrep'
agrep kullanımının tüm örneklerini bu kılavuz sayfalarında verir.
onworks.net hizmetlerini kullanarak agrep'i çevrimiçi kullanın