2013-05-08 17 views
6

-o -nをgrepに渡すことで、ファイル内のパターンのすべての一致部分と各一致が見つかった行番号を出力できます。grepの一致する行内の列オフセットを出力する方法

パターンが見つかった行内のオフセットを印刷するにはどうすればよいですか?

+1

わかりやすくするために、列オフセットは行/文字列への文字オフセットを意味します。 – themanatuf

+0

はい、その行に文字がオフセットされています。 –

+0

Vim 'set grepprg' :-) –

答えて

5

私はあなたがawkでやっているのと同じことを模倣することができたと思います。 AWKマニュアルを参照:

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 

そして、ここで私が走ったコマンドです:

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

そして出力:

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

は、ここに私のファイルは次のようになります

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

私はこれをすばやくやっていましたが、あなたが必要な場所にあなたを連れて行くのに十分に役立つことを願っています。

+3

whileループが必要な場合がありますか?それ以外の場合は、1行に最初に一致するものが見つかるだけです。 – Kent

関連する問題