Grep, awk ve sed için temel bir eğitim var mı? [kapalı]


95

Bir süredir Linux kullanıcısı oldum ve genel komut satırı araçlarının çoğunu çok iyi anladım. Ancak, programlama ile ilgili olarak tekrar yukarı ve gelip olanlardır grep, awkve sed.

Grep'i kullandığım tek şey, pskullanmadığım awkya da hiç kullanmadığım log dosyalarındaki dosyaları bulmak için içine boru döşemek sed. Bu programlar için iyi bir ders var mı?



Her zaman regex öğrenmeyi bıraktım çünkü kendime bir gün Kleene'nin bilgisayarlarda yaygın olarak kullanılmadan önce konsepti icat eden orijinal makalelerini okuyarak öğreneceğimi söyleyeceğim.
ixtmixilix

Ben gvkv katılıyorum: Bu öğrenmesi gerekiyorsa, siz de Perl öğrenebilir, ne yaptığını grep, sedve awkbunu (ve hemen hemen aynı şekilde) ve üstüne daha çok.
reinierpost 17:15

Her zaman thegeekstuff.com'u severim. man% 90 dipnot gibi hissettiren normal sayfanın aksine, örnekleri doğrudan kesmişlerdi .
izomorfizmalar

Yanıtlar:



19

O'Reilly sed ve awk kitabı er sed ve awk için harika.


11

Ben bir kitap yazdım sed- sed Kesin Kılavuzu -yani bir eğitim içerir. Tamamen kapakları sedyanı sıra gibi ilgili komutlar grep, tr, headve tail. Ayrıca, başka yerlerde gördüğümden çok daha iyi düzenli ifadeler de kapsar.

Düzenli ifadeleri iyi anlamanın çok önemli olduğu diğerleriyle aynı fikirdeyim. Ayrıca seddaha basit işler için en iyi şekilde kullanıldığına katılıyorum , daha karmaşık komut dosyaları çabucak belirsizleşiyor.

Ben awkbunun tam tersi, tam tersi. Birçok unix violayı gibi (örneğin ), bir öğrenme eğrisi var, ama buna değer.

awkYerine kullanmak için öneriye katılmıyorum grep. Tecrübelerime anlam ifade etmiyor. grepçok harika ve basit.


Ben ikincisiyim grep- eğer yardım edebiliyorsan, traktöre otoyoldan giremezsin. Ve bu da oldukça iyi bir kitap - teşekkürler.
mikeserv

3

O'Rielly tarafından yayınlanan Normal İfadeler Yemek Kitabı, onları kullanan herhangi bir dilde herhangi bir yere götürmeniz için yeterli olacaktır.


3

Kitabın yazarları Kernigan ve Pike unvanı "Unix Programlama Ortamı" gibi bir şey.

Aslında öğrendiğim kitabın adı "Berkely Unix'e Giriş".


2

Bunlardan birini öğrenmek istiyorsanız (grep, sed ve awk), sadece awk / gawk'ı öğrenebilirsiniz . . awk grep ve sed işlevlerini yapabilir, yani metin aramak / değiştirmek için regex kullanarak, ayrıca bir programlama dili de kullanır. Gawk / awk'ın içini öğrenirseniz, grep / sed / wc / cut vb. Kullanmanıza gerek kalmayacaktır.


oh, btw, awk'a bile ihtiyacımız yok, sadece g++ -x c++ - -o /tmp/prog && /tmp/progkomutlarınızı yazıp kullanabilirsiniz . Hepsine hükmedecek tek bir araç! :-)
Lie Ryan

1
sadece ikili dosyayı bir dosyaya yazabiliyorsanız, bir derleyiciye kim ihtiyaç duyar? Tembel hissediyorsanız kedi yapacak ya da ed.
cas,

1

Kanımca, awk az çok modası geçmiş (ancak, diğerleri bu görüşü kesinlikle tartışacaklar), bugünlerde tanıdığım çoğu insan bunun yerine perl veya bugün genellikle python gibi bazı metin dillerini ileri düzey metin manipülasyonu için kullanıyor. sed, basit metin işleme görevleri için mükemmeldir, her zaman kullanıyorum. Ben bunu çoğunlukla http://sed.sourceforge.net/sed1line.txt adresindeki gibi bir tek gömleke bakarak öğrendim . Grep ile ilgili: Temel olarak düzenli ifadelerin sağlam bir şekilde anlaşılmasını (sed için de gereklidir) almak istersiniz. Burada sadece texinfo kılavuzlarını kullandım.


10
awk, diğer komutlardan gelen veri akışını yönetmek için hala çok kullanışlıdır. Basit komut satırı kullanımı için henüz eski olduğunu düşünmezdim.
MaQleod

Ayrıca POSIX nedeniyle birçok sistemde mevcut olmalıdır.
echox

1
Çoğu 'gelişmiş AWK' muhtemelen perl veya python veya başka bir şeyle daha iyidir, fakat basit şeyler sadece awk ile yapmak iyidir.
28:10

1
Bir problemi çözmeye çalışırken çevrimiçi bulabileceğiniz çeşitli cevapları anlamak için Awk hala kullanışlıdır. Genellikle, awk deyimlerini kullanan çevrimiçi örnekleri bulacaksınız awk '{print $3}'.
Steven D

1
İşteyken, evde de sedd'den daha sık awk kullanıyorum. Hiçbir şey dpkg -lçıktı gibi sabit tablo verilerinde awk alamaz . Uzaktan karmaşık bir şey yapmazdım, ama beceriksiz bir araç olmazdım. Bazılarını sevdiğim kadar, daha genel programlama dilleri için aynı şeyi söyleyemem.
JM Becker
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.