2013-05-08 11 views
6

-o -n - grep komutunu ileterek, bir dosyanın içindeki tüm eşleşen parçaları bir dosya içinde ve her eşleşmenin bulunduğu satır numarasını gönderebilirim.Grep'te her eşleşen satırda sütun ofseti nasıl yazdırılır

Desteğin bulunduğu satırdaki sütun ofsetini nasıl yazdırabilirim?

+1

Sadece netlik için, sütun ofseti ile karakter/satırdaki ofset anlamına gelir, değil mi? – themanatuf

+0

Evet, doğru, karakterin çizgiye kaydırılması. –

+0

Vim 'set grepprg' :-) –

cevap

5

Ben awk ile yaptığınız şeyi taklit edebildiğimi düşünüyorum. Koştum komut burada

this,is,a,test,line 
this, ,a,test,line,with,the,second,field,blank 
this, is,another,test,line,with,a,blank,in,the,second,field,but,the,field,isnt,blank 
this, ,is,another,line,with,a,blank,second,field 

Ve bulunuyor:

awk '{regex = "test"; where = match($0, regex); print "REGEX: ",where," on line ",NR}' test 

Ve çıkışı:

REGEX: 11 on line 1 
REGEX: 10 on line 2 
REGEX: 18 on line 3 
REGEX: 0 on line 4 

http://www.staff.science.uu.nl/~oostr102/docs/nawk/nawk_92.html

İşte benim dosyası şöyle görünür: AWK kılavuzu başvurulması

Bunu çabuk ve kirli yaptım, ama umarım, olmanız gereken yere ulaşmanız için yeterince yardımcı olur.

+3

Bir süre döngüsüne ihtiyacınız olabilir mi? Aksi takdirde her satırda ilk maçı bulabilirsiniz. – Kent

İlgili konular