achat levitra mg 
vente de viagra sur paris autorise 
viagra moin cher 
acheter viagra sur 
generic levitra 
levitra pas chere 
viagra pharmacyed 
temps d'action du levitra chez le diable à tique 
sildenafil citrate mg 
vardenafil 
viagra achat rapide 
viagra toulouse 
comment acheter cialis en ligne 
viagra inde 
acheter viagra france ligne 
levitra filmtabletten kosten viagra rezept viagra online in contrassegno viagra sin receta en farmacias purchase viagra pil via internet comprare viagra in farmacia senza ricetta levitra billig kaufen differenza cialis viagra viagra homme forum vendo cialis achat viagra sur internet viagra pagamento contrassegno generico do viagraonline comprar viagra generico

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.