levitra generika kaufen precio levitra farmacia kamagra wo kaufen viagra preço generico tadalafil europa viagra rezeptfrei erfahrungen acheter viagra medicament acht c a du viagra viagra alternativer comprar levitra generica vendita viagra medicament levitra mg cialis generico prezzo in farmacia cialis angleterre compra viagra 24 horas
acheter du viagra par paypal france 
comparaison levitra viagra 
tadalafil generique 
achat levitra france 
viagra ou acheter 
acheter kamagra inde 
achat viagra andorre 
cialis pas de la case 
viagra femme homeopathique 
viagra allemagne 
acheter levitra moins cher 
commande viagra en france 
acheter viagra moins cher 
viagera en ligne france 
viagra generique canada 
cheap champix purchase levitra cialis best prices viagra soft tabs kamagra australia priligy mg next day delivery dapoxetine purchase buy prozac online no prescription cheap generic viagra online priligy dapoxetine cheap champix no prescription buy kamagra paypal kamagra otc buy priligy where can i buy levitra

Find Occurences of Text String in Files

I had to search for occurences of string in particular files, and using Cygwin i did the following:

find all files that ends on .js, .html or .ascx:

$ find -regextype posix-extended -regex “.+\.(js|html?|ascx)$”

Then search for lines that contain the following javascript construction

for( var x in object)

I ended up with this regular expression to match the javascript:

/for\s?\(.+?\bin\b.+?\)/

. Although not strictly necessary, i test for word-boundaries around

“in”

— it would be sufficient just to use spaces like this

” in “

. For grep to eat this its pack with parameters that show filename (-H), line number (-n), only matching part of line (-o), and use Pearl compatible regexps (-P):

grep -nHoP “for\s?\(.+?\bin\b.+?\)”

Set this into a find expression where the -exec flag allows you to run the grep command on each file found:

$ find -regextype posix-extended -regex “.+\.(js|html?|ascx)$” -exec grep -nHoP “for\s?\(.+?\bin\b.+?\)” ‘{}’ \;

Choosing a -regextype for find
The regextype had to be changed and I found that these work with the chosen regexp:
* posix-extended, posix-awk, and posix-egrep
but posix-basic did not work.

4 Responses to “Find Occurences of Text String in Files”

  1. Thomas Baekdal Says:

    Jesper, you should try regexboddy :)
    http://www.regexbuddy.com/

  2. Jesper Rønn-Jensen Says:

    @Thomas, I am glad you pointed that out. It comes down to usability :)

    Actually i have a license for regexbuddy, acetext, Powergrep, and more of Jan Goyvaerts utilities.

    I was very fond of Powergrep especially because it had so good regex support. But I stopped using it — as the usability geek I am — primarily because of the following:

    1) the interface was cluttered and it became harder to use. I had repeatedly problems and wasted braincycles setting up simple things like which files to search in. The program had the unlucky ability always to present the wrong defaults when i used the program.

    2) the other thing that’s important to me is I want the search to be reproducible by everybody in our project team. Even if I could save a search, i don’t want it in a proprietary format.

    Having said that, I used the Powergrep family of programs extensively for a period of time. Approximately 2 years ago. So things can have improved.
    However I remember the shift from version 3 to 4 when the interface got too complicated (at least to me)

    I want programs that get out of my way, and let me focus on solving my work. Powergrep required too many of my braincycles :)

  3. Thomas Baekdal Says:

    He he – well, I pointed out RegExBoddy, primarely because I thought your command lines looked a tad too complex. I would have a hard time remembering what to write. I actually switched from a command like interface to RegExBoddy, because I thought it was more usable and easier to work with :)

    I guess then it is a matter of personal taste…

    BTW: All this remind of the age old quote by Jamie Zawinski

    Some people, when confronted with a problem, think
    “I know, I’ll use regular expressions.” Now they have two problems.