• levitra generika preisvergleich comprar levitra 10 mg sildénafil citrate viagra-50 viagra natural en farmacias cialis receptfritt preis viagra preisvergleich viagra a andorre viagra prix france pilule viagra pour femme viagra pil levitra prix france potenzmittel levitra kaufen bestellen viagra achat cialis urgent acheter viagra sécurisé
  • levitra portugal precio de cialis acquistare viagra senza ricetta viagra medicament apotek på nett sostituto viagra medicinale levitra viagra günstig ohne rezept sildenafil prix comparatif viagra levitra comprare cialis in svizzera comprar viagra en barcelona comprare finasteride online viagra in der apotheke levitra generico in farmacia

    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.